matplotlib入門

グラフの体裁を整える

タイトル、軸ラベル、系列ラベル

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

plt.plot( [3,1,4,1,5,9,2,6,5], label = "Data 1")
plt.plot( [3,5,8,9,7,9,3,2,3], label = "Data 2")
plt.legend() # 凡例を表示

plt.title("Graph Title")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
_images/modify-1.png

日本語の使用

日本語を使う場合はやや手順が面倒です。

まず、文字列を unicode にしましょう。( u”なんとか” のようにuを最初につける) 次に、以下の要領でフォント .ttf ファイルの場所を直接指定します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

import matplotlib.font_manager
fontprop = matplotlib.font_manager.FontProperties(fname="/usr/share/fonts/truetype/fonts-japanese-gothic.ttf")

plt.plot( [1,2,3] )
plt.title(u"グラフタイトル", fontdict = {"fontproperties": fontprop})

plt.show()

.ttf ファイルはそれぞれ以下の場所にあります。

  • Linux: /usr/share/fonts/truetype
  • Mac: /Library/Fonts/
  • Windows: C:/Windows/Fonts/

凡例の設定

引数は plt.plot() 毎に label を指定し plt.legend() で表示しますが、 plt.legend() の引数としてラベルを配列で指定する方法もあります。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

plt.plot( [3,1,4,1,5,9,2,6,5])
plt.plot( [3,5,8,9,7,9,3,2,3])
plt.legend(['Data 1','Data 2'])

plt.show()

凡例の場所を変えたい場合、 plt.legend() に引数 loc を指定します。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

plt.plot( [3,1,4,1,5,9,2,6,5], label='Data 1')
plt.plot( [3,5,8,9,7,9,3,2,3], label='Data 2')
plt.legend(loc='upper top') # 凡例を右上に表示

plt.show()

指定可能な loc の値は以下のとおりです。

right
center left
upper right
lower right
best
center
lower left
center right
upper left
upper center
lower center

best を使えば適当にそれっぽい場所に置いてくれます。

軸の設定

対数目盛を使いたい場合は plt.xscale(), plt.yscale() を使います。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

plt.plot( [3,1,4,1,5,9,2,6,5] )
plt.yscale("log") # y軸を対数目盛に

plt.show()

軸の範囲を制限したい場合は以下のようにします。

plt.xlim([0,10]) # x軸の範囲を 0 <= x <= 10 に

x軸の目盛りを書き換えたい場合は plt.xticks() を使い、 引数には「どの位置に」「何を」表示するかをそれぞれリストで指定します。 これは数値でなく文字列でも指定可能です。

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt

plt.plot([3,1,4,1,5])
plt.xticks([0.7,2,3.4], ["a","b","c"])
plt.show()
_images/modify-xticks.png

Table Of Contents

Previous topic

とりあえず描く

Next topic

Numpy との連携