グラフのタイトルやラベルに日本語を使いたいことは多いので、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 という行を追加し、さっきダウンロードしたフォントを指定します。
行を追加したら保存してファイルを閉じます。
フォントの保存
最後にさっきダウンロードしたipaexg.ttfをMatplotlibのフォントディレクトリにコピーします。フォントディレクトリは、matplotlibrcの1つ上の階層にあるfontsというディレクトリです。この中にttfというディレクトリがあるので、ここにipaexg.ttfをコピーします。
これでMatplotlibの日本語化の設定は完了です。
最初のコードを実行したら日本語が表示されるようになりました。
うまくいかない場合は、フォントのキャッシュが影響している可能性があります。
私の場合は、ホームディレクトリにある.matplotlibのfontList.jsonを削除する必要がありました。
以上、今回はここまで。
0 件のコメント :
コメントを投稿