pythonでグラフを描く(2)-日本語を使う

ラベルで日本語を使う

matlotlibはそのままでは日本語を使用することができない.この解決には2つの方法があるのだが,今回はデフォルトで使用するフォントを変更する策を取る.もう1つの方法はグラフごとにフォントのオプションを追加する方法なのだが,そもそも日本語で書くのがほとんどだと思うのでやらない.

 

まずはmatplotlibの設定ファイル"matplotlibrc"を探し出す.(自分の環境ではC:\Python27\Lib\site-packages\matplotlib\mpl-dataに入っていた.)

次にそのファイルに以下の行を付け足す.フォントはインストールされているものなら好きなものを使えるはず.

 font.family   : IPAGothic 

次にフォントのキャッシュを消す.C:\Users\<ユーザー名>\.matplotlibにfontList.cacheというファイルがあるはずなのでそれを消去してしまう.

これで日本語フォントが使えるようになった.試しに以下のグラフを描いてみる.

# coding: UTF-8
import matplotlib.pyplot as plt
plt.plot([1,2,3,4],[1,4,9,16],'bo',label = u"2乗")
plt.legend()
plt.xlabel(u"X軸")
plt.ylabel(u"Y軸")
plt.title(u"図 1.1")
plt.axis([0,5,0,25])
plt.show()

文字化けすることなく日本語が出力されただろうか?

f:id:TKYMa:20151123000724p:plain

matplotlibrcのロード順

matplotlibrc設定ファイルは以下の順で読み込まれる.

  1. カレントディレクトリに存在するmatplotlibrc
  2. $MATPLOTLIBRC/matplotlibrc.
  3. C:\Users\<ユーザー名>\.matplotlib/matplotlibrc.
  4. C:\Python27\Lib\site-packages\matplotlib\mpl-dataのmatplotlibrc

グラフ固有の設定を使いたい場合は1のmatplotlibrcを利用することが推奨されているようだ.

 

久しぶりに更新したのに短い.でも必要なことはメモしたような気がするので次は回帰直線を描きたい.