Python と WordCloud を使用してワードクラウドを生成する方法、TrueType フォントが認識されない場合の対処方法
1. 環境のインストール#
pip3 install wordcloud
2. コードデモ#
import pandas as pd
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# データの読み込み
def read_data(filename):
df = pd.read_excel(filename)
return df['Keyword'].tolist()
# データの分析
def analyze_data(keywords):
df = pd.DataFrame(keywords, columns=['Keyword'])
keyword_counts = df['Keyword'].value_counts()
# ワードクラウドの生成
wordcloud = WordCloud(width=800, height=400, font_path='/System/Library/Fonts/Supplemental/Arial.ttf').generate_from_frequencies(keyword_counts)
plt.figure(figsize=(20, 10))
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
# メインプログラム
def main():
keywords = read_data('keywords.xlsx')
analyze_data(keywords)
if __name__ == '__main__':
main()
このコードは、Excel ファイルからキーワードを読み取り、WordCloud ライブラリを使用してワードクラウドのチャートを生成し、最後に Matplotlib ライブラリを使用してチャートを表示します。read_data () 関数は Excel ファイルからキーワードを読み取り、analyze_data () 関数は読み取ったキーワードを分析し、対応するワードクラウドのチャートを生成します。main () 関数はメインプログラムのエントリーポイントであり、read_data () 関数と analyze_data () 関数を呼び出してデータの読み取りからワードクラウドの生成までの全プロセスを実現します。
*Excel ファイルの形式:
3. フォントの問題に遭遇した場合#
私は Mac を使用しており、ワードクラウドを生成する際に常に「ValueError: Only supported for TrueType fonts
」というエラーメッセージが表示されますが、実際には TrueType フォントを使用しています。この場合、フォントファイルのパスが正しいかどうかを確認するだけで問題ありません。
pip install --upgrade pillow
このエラーは、Pillow ライブラリ(PIL)のバージョンの問題かもしれません。一部のバージョンの Pillow ライブラリでは、**ImageDraw.textbbox
** メソッドは TrueType フォントのみをサポートし、OpenType フォントはサポートしていません。提供されたフォントファイルが TrueType フォントであっても、Pillow が正しく認識できない場合があります。