matplotlibで、判例やグラフタイトルに日本語を使用する

matplotlibで、判例などに日本語を使う方法のメモ。

こちらを参考にしました。
Matplotlib 利用ノート



判例に日本語を表示



グラフの判例に日本語を使ってみます。
まず、何も考えずに表示しようとするプログラム。


  1. # -*- coding: utf-8 -*-
  2. import pylab
  3. # 適当にデータを用意
  4. x = [10, 20, 25, 28, 30]
  5. # グラフを描画
  6. # label名を指定すること!
  7. pylab.plot(x, label=u'日本語')
  8. # 凡例を表示
  9. pylab.legend()
  10. # 描画
  11. pylab.show()




こんな感じで、日本語の部分が豆腐になります。

420_01.png


こちらが参考になりました。
How to change legend size with matplotlib.pyplot


legendにFontPropertiesを渡してやります。


  1. # -*- coding: utf-8 -*-
  2. import pylab
  3. from matplotlib.font_manager import FontProperties
  4. # 適当にデータを用意
  5. x = [10, 20, 25, 28, 30]
  6. # グラフを描画
  7. # label名を指定すること!
  8. pylab.plot(x, label=u'日本語')
  9. # 凡例を表示
  10. fp = FontProperties(fname='/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf')
  11. pylab.legend(prop=fp)
  12. # 描画
  13. pylab.show()




これで判例に日本語が表示できました。

420_02.png



FontPropertiesにsizeを指定することで、フォントサイズも変更できます。


  1. # -*- coding: utf-8 -*-
  2. import pylab
  3. from matplotlib.font_manager import FontProperties
  4. # 適当にデータを用意
  5. x = [10, 20, 25, 28, 30]
  6. # グラフを描画
  7. # label名を指定すること!
  8. pylab.plot(x, label=u'日本語')
  9. # 凡例を表示
  10. fp = FontProperties(fname='/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf', size=40)
  11. pylab.legend(prop=fp)
  12. # 描画
  13. pylab.show()




420_03.png



ちなみに、指定する文字列はUnicodeオブジェクトじゃないと
こんなエラーが発生して、内容が表示されません。


ValueError: matplotlib display text must have all code points < 128 or use Unicode strings







グラフのタイトルに日本語を表示



グラフのタイトルや、X軸、Y軸に日本語を表示してみます。


  1. # -*- coding: utf-8 -*-
  2. import pylab
  3. # 適当にデータを用意
  4. x = [10, 20, 25, 28, 30]
  5. # グラフを描画
  6. pylab.plot(x)
  7. #ラベルの追加
  8. pylab.title(u'日本語タイトル') #タイトル
  9. pylab.xlabel(u'X軸です') # X 軸
  10. pylab.ylabel(u'Y軸です') # Y 軸
  11. # 描画
  12. pylab.show()




やはりそのままだと豆腐になります。

420_04.png


titleやxlabelに値を設定するとき、fontdictでフォント情報を渡してやります。


  1. # -*- coding: utf-8 -*-
  2. import pylab
  3. from matplotlib.font_manager import FontProperties
  4. # 適当にデータを用意
  5. x = [10, 20, 25, 28, 30]
  6. # グラフを描画
  7. pylab.plot(x)
  8. #ラベルの追加
  9. fp = FontProperties(fname='/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf')
  10. pylab.title(u'日本語タイトル', fontdict={'fontproperties':fp}) #タイトル
  11. pylab.xlabel(u'X軸です', fontdict={'fontproperties':fp}) # X 軸
  12. pylab.ylabel(u'Y軸です', fontdict={'fontproperties':fp}) # Y 軸
  13. # 描画
  14. pylab.show()




これで日本語が表示できました。

420_05.png





テキストに日本語を表示



pylab.textで日本語を表示してみます。


  1. # -*- coding: utf-8 -*-
  2. import pylab
  3. from matplotlib.font_manager import FontProperties
  4. # 適当にデータを用意
  5. x = [10, 20, 25, 28, 30]
  6. # グラフを描画
  7. pylab.plot(x)
  8. # テキストの追加
  9. fp = FontProperties(fname='/usr/share/fonts/truetype/takao-gothic/TakaoGothic.ttf')
  10. # 位置の指定は、x軸,y軸の値
  11. pylab.text(2, 20, u'日本語', fontproperties=fp, size=40)
  12. # 描画
  13. pylab.show()




420_06.png

関連記事

コメント

非公開コメント

プロフィール

Author:symfo
blog形式だと探しにくいので、まとめサイト作成中です。
Symfoware まとめ

PR




検索フォーム

月別アーカイブ