MacのMatplotlibで日本語を使えるようにする

Pythonのグラフ描画ライブラリのMatplotlibは、簡単にグラフが書けてとても便利なのですが、デフォルトの状態では日本語を使うことができません。

グラフのタイトルやラベルに日本語を使いたいことは多いので、Matplotlibで日本語を使えるように設定します。対象はMacです。


日本語を使うと文字化けする

Matplotlibをデフォルトで使うと日本語が文字化けしてしまい、ちゃんと表示されません。

試しに簡単なグラフを作成してみます。


import matplotlib.pyplot as plt
import numpy as np

datas = np.random.normal(50, 10, 10)
plt.plot(datas)
plt.title('グラフタイトル')
plt.show()

上のコードを実行して作られるのが下のグラフです。
文字化けグラフ
グラフのタイトルには'グラフタイトル'と指定したのですが、文字化けしてしまっています。


フォントのダウンロード

今回はIPAexフォントという有名なフリーフォントを使わせてもらいます。

https://ipafont.ipa.go.jp/node26#jp

上記のURLからIPAexゴシックというフォントを選び、zipファイルをダウンロードします。

zipファイルを開くとipaexg.ttfというファイルがあります。これがフォントのファイルです。このファイルは後で使うので、そのまま取っておきます。




matplotlibrcの設定

Matplotlibで日本語を使うためには、Matplotlibで使うフォントを指定するコードを書けばいいのですが、Matplotlibを使うたびにそのコードを書くのは面倒です。

そこで、Matplotlibの設定ファイルを書き換えて、Matplotlibで使うフォントを変更します。そうすれば、毎回フォントを指定するコードを書く必要はなくなります。

Matplotlibの設定ファイルは、matplotlibrcというファイルです。

matplotlibrcがある場所は、環境によって色々だと思いますが、下記のコードで調べることができます。


import matplotlib as mpl

print(mpl.matplotlib_fname())

このファイルをエディタで開いて、「#font.family」と検索します。
その下に、font.family    : IPAexGothic という行を追加し、さっきダウンロードしたフォントを指定します。

matplotlibrcのキャプチャ

行を追加したら保存してファイルを閉じます。


フォントの保存

最後にさっきダウンロードしたipaexg.ttfをMatplotlibのフォントディレクトリにコピーします。

フォントディレクトリは、matplotlibrcの1つ上の階層にあるfontsというディレクトリです。この中にttfというディレクトリがあるので、ここにipaexg.ttfをコピーします。

これでMatplotlibの日本語化の設定は完了です。
グラフ2
最初のコードを実行したら日本語が表示されるようになりました。



うまくいかない場合は、フォントのキャッシュが影響している可能性があります。

私の場合は、ホームディレクトリにある.matplotlibのfontList.jsonを削除する必要がありました。

以上、今回はここまで。

0 件のコメント :