問題の背景
matplotlibでグラフを描画した際にタイトルや軸のラベルが日本語だと文字化けしてしまうという問題があった。
クライアント向けの資料などにグラフを使用する際にt不便なので、日本語を表示する方法を調べた。
matplotlibに日本語に対応しているフォントがあるか確認する方法
import matplotlib
#matplotlibのディレクトリを確認する。
print(matplotlib.matplotlib_fname())
#matplotlibに追加されているフォントの一覧を取得する。
fonts = set([f.name for f in matplotlib.font_manager.fontManager.ttflist])
print(fonts)
# 日本語で使用できるかを確認する方法
# フォントの表示
for i, font in enumerate(fonts):
plt.text(0, i, f"日本語:{font}", fontname=font)
# 見やすいように軸を消す
plt.ylim(0, len(fonts))
plt.axis("off")
plt.show()
実行した結果が以下のようになる
私の環境ではIPAexGothicというフォントが日本語に対応しているとわかったので、これを指定していく。
やり方としてはmatplotlib.pyplotをインポートした際に下に以下のコードを追記するだけである。
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = "IPAexGothic"
matplotlibに日本語対応のフォントが追加されていなかった場合
以下の記事がわかりやすかったので参考にしていただきたいが、私の方でも簡単に解説する
1.まず以下のサイトからIPAexGothicをダウンロードする。
2.次に現在のGoogleColaboratory(もしくはJupyternotebook)のファイルと同じディレクトリに
fontsというフォルダを作成し、先ほどダウンロードしたフォルダの中に入っている、「ipaexg.ttf」を移動させる。
3.最後に以下のコードを書く
from matplotlib import font_manager
font_manager.fontManager.addfont("/content/drive/MyDrive/fonts/ipaexg.ttf")
matplotlib.rc('font', family="IPAexGothic")
あとは本記事の上にある、フォントが追加されていた場合の手順を踏めば良い。