Symfoware

Symfowareについての考察blog

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

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2014/06/01(日) 18:31:24|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<matplotlibで、系列の凡例を枠外に表示する | ホーム | matplotlibを使ってPythonでグラフを表示する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1417-74487a05
この記事にトラックバックする(FC2ブログユーザー)