2021年2月5日金曜日

matplotlib日本語化対応

matplotlibで日本語データをグラフ表示すると文字化けしてしまいます。

そこで日本語化への対応方法を示します。




フォントファイルの取得
まず、フォントファイルを取得していきます。
今回は、記事作成時点で最新のIPAexフォント(Ver.004.01)のIPAexゴシックを利用してきます。
以下のリンクにアクセスしてフォントファイルIPAexゴシック(Ver.004.01)をダウンロードします。
https://moji.or.jp/ipafont/ipaex00401/


ダウンロードしたら展開します。



フォントファイルを配置
次にmatplotlibでこのフォントファイルを利用できるように、フォントファイルを配置していきます。

matplotlibの設定ファイルの場所は、以下のコードにて確認することができます。
import matplotlib as mpl
print(mpl.matplotlib_fname())
私の場合は、「/opt/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/matplotlibrc」でした。

フォントファイルは、設定ファイルの1階層上のfontsフォルダ内のtff内に入れていきます。
私の場合は、「/opt/anaconda3/lib/python3.8/site-packages/matplotlib/mpl-data/fonts/ttf」にipaexg.tffを入れます。


キャッシュファイルの削除
使用しているフォントのキャッシュが残っている場合があります。
そこでキャッシュファイルを削除していきます。
windowsの場合は、「C:\Users\<ユーザ名>\.matplotlib」
Macの場合は、「/Users/<ユーザ名>/.matplotlib」にあるjsonファイルを削除します。

そして、一度現在使用しているVSCodeやJupterNotebookなどは落として再起動します。


matplotlibの設定
フォントファイルがフォルダに入り、キャッシュも削除されました。
このままではまだ日本語化されません。matplotlibを実行するときに、使用するフォントファイルを指定してあげる必要があります。
ソースコード内に
plt.rcParams['font.family'] = 'IPAexGothic'
を記載することで、IPAexゴシックを利用するようになります。

これにて終了です。


参考