【Python】matplotlibで日本語フォントを使用する
Pythonでグラフを描くときにお世話になるmatplotlib。多機能で大変便利なのですが、初期状態では日本語フォントが表示できません。matplotlibで日本語フォントを使う方法について調べ、まとめてみました。
環境
- Lubuntu Linux 20.04 LTS
- python 3.8.10
- matplotlib 3.3.4
- Windows10
- python 3.8.5
- matplotlib 3.3.2
matplotlibで使用されるフォントを確認する
matplotlibで現在使用されているフォントを確認するには、次のようにします。
import matplotlib
print(matplotlib.rcParams['font.family'])
出力:
['sans-serif']おそらく結果が初期設定のsans-serifとなっているはずです。この場合DejaVuというフォントが使われ、日本語を表示することができません。これを変更する必要があります。
matplotlibの設定ファイルを確認する
matplotlibはグラフを表示するための設定をmatplotlibrcというファイルから読み込みます。今読み込んでいるmatplotlibrcの場所を確認するためには、次のようにします。
import matplotlib
print(matplotlib.matplotlib_fname())
出力:
/usr/local/lib/python3.8/dist-packages/matplotlib/mpl-data/matplotlibrc参照しているのが自分のホームディレクトリではない場合には、~/.config/matplotlibにこのファイルをコピーし、それを編集します。
Windowsの場合は、自分で環境変数HOMEを設定して独自のホームディレクトリを指定していなければ、C:\Users\(ユーザー名)\.matplotlibというディレクトリが作成されているはずです。ここにmatplotlibrcをコピーします。
cp /usr/local/lib/python3.8/dist-packages/matplotlib/mpl-data/matplotlibrc ~/.config/matplotlibコピーしたファイルを開き、font.familyという行を探します。行頭が#で始まっている場合はコメントアウトされているので、#を削除します。
そしてfont.familyに使用したい日本語フォントを設定します。

これで使えるようになるはずです。
Windowsで表示されない場合
Windowsで上記設定をしても表示されないことがあります。この場合はmatplotlibが指定されたフォントを見つけられていないことが原因です。
.matplotlibディレクトリ内にfontlist-v{バージョン}.jsonというファイルがあり、この中に利用可能なフォントの一覧が記録されています。この中のttflistプロパティに使用したい日本語フォントを追加してください。json形式で記述します。

まとめ
matplotlibで日本語フォントを使用する方法について説明しました。matplotlibrcにはフォントの他にも多数の設定項目があります。今後機会がありましたら記事にしたいと思います。
Numpy等の基本的な使い方について説明した書籍です。第5章でMatplotlibの使い方についても説明されています。



ディスカッション
コメント一覧
まだ、コメントがありません