pythonでグラフを描く(4)-誤差棒を描く

誤差棒を表示する

 グラフを描くなら誤差棒が必要になることは多々ある.エクセルは誤差棒が一番めんどくさい.

 f:id:TKYMa:20151130005821p:plain

 

# coding: UTF-8
import matplotlib.pyplot as plt
#グラフを描く
x = [1,2,3,4]
y = [1,4,9,16]
plt.plot(x,y,'bo',label = u"2乗")

#誤差棒を描く
err = [0.6,0.7,2.1,1.4]
plt.errorbar(x,y,yerr=err,fmt='ro',ecolor='g')

plt.legend()
plt.xlabel(u"X軸")
plt.ylabel(u"Y軸")
plt.title(u"図 1.1")
plt.axis([0,5,0,25])
plt.show()

 

誤差棒はerrorbarで指定することができる.

errorbar(x, y, yerr=None, xerr=None,fmt='', ecolor=None)

  • x = 誤差棒を出すx座標
  • y = 誤差棒を出すy座標
  • yerr = y軸方向の誤差
  • xerr = x軸方向の誤差
  • fmt = プロットのフォーマット
  • ecolor = 誤差棒の色

ここで気を付けてたいのはerrorbarで描かれるのは誤差棒だけでないということだ.

見てのとおりデータを青点でプロットしているが(6行目)実際は赤点が表示されている.というのもerrorbarで指定しているプロットのフォーマットが上書きされているのだ.

これは先にplotしたからで,errorbar→plotの順でスクリプトを描くとplotが最も上層に現れるので青点が表示されることになる.

 

f:id:TKYMa:20151130005835p:plain

# coding: UTF-8
import matplotlib.pyplot as plt
#グラフを描く
x = [1,2,3,4]
y2 = [4,6,8,10]

err2 = [0.1,0.2,0.3,0.1]
plt.errorbar(x,y2,xerr=err2,fmt='b')

plt.legend()
plt.xlabel(u"X軸")
plt.ylabel(u"Y軸")
plt.title(u"図 1.2")
plt.axis([0,5,0,15])
plt.show()

 

fmtで点を指定しないとこのようにグラフ+誤差棒で表示できる.場合によっては便利?