【matplotlib】折れ線グラフ、散布図、棒グラフとエラーバー[Python]

  • URLをコピーしました!
目次

前回のおさらい

前回、エラーバーの表示の仕方を解説しました。

今回は折れ線グラフ、散布図、棒グラフに対して、エラーバーを表示させてみましょう。

まずは前回のおさらいから。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, xerr=x_error, yerr=y_error, linestyle="None", capsize=10, ecolor="black", linewidth=3, capthick=3)

plt.tick_params(labelsize=20)
plt.grid()

plt.show()

実行結果

エラーバーを表示しているのは、この部分。

plt.errorbar(x_value, y_value, xerr=x_error, yerr=y_error, linestyle=”None”, capsize=10, ecolor=”black”, linewidth=3, capthick=3)

x_value, y_valueのところが、X座標、Y座標、

xerr, yerrがX値、Y値に対するエラーの値、

linestyleが線の形状、

capsizeがキャップのサイズ、

ecolorが線の色、

linewidthが線の太さ、

capthickがキャップの線の太さ、でしたね。

今回もこのデータを基準として、いろいろといじっていきましょう。

折れ線グラフとエラーバー

折れ線グラフに対して、エラーバーを乗せてみます。

折れ線グラフだと大体Y値に対するエラーバーのみを表示しますので、X値に対するエラーバー(xerr)は消します。

またlinestyle=”None”として線を消していたので、このコマンドを消して、線を表示させます。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", linewidth=3, capthick=3)

plt.tick_params(labelsize=20)
plt.grid()

plt.show()

実行結果

線の色を変えたり、点線にしたりのコマンドは折れ線グラフの変更方法と同じです。

線の色を変えるには、color=”線の色”

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", linewidth=3, capthick=3, color="red")

plt.tick_params(labelsize=20)
plt.grid()

plt.show()

実行結果

線の種類を変えるには、linesytle=”線の種類”

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", linewidth=3, capthick=3, color="red", linestyle=":")

plt.tick_params(labelsize=20)
plt.grid()

plt.show()

実行結果

このグラフに対して、凡例を表示することもできます。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", linewidth=3, capthick=3, color="red", linestyle=":", label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

plt.errorbarのみで折れ線グラフを作ってもいいのですが、plt.plotとの組み合わせもプログラムが分かりやすくなって、個人的には好きです。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.plot(x_value, y_value, linewidth=3, color="red", linestyle=":", label="test")
plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", capthick=3, linestyle="None")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

散布図とエラーバー

次に散布図にエラーバーを表示してみましょう。

線はいらないので、linestyle=”None”とします。

また点を表示したいので、marker=”o”を追加します。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", capthick=3, linestyle="None", marker="o", label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

点の色や形を調整するのは、散布図の時と同じです。

点の形を変えるには、marker=”形状”。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", capthick=3, linestyle="None", marker="^", label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

色を変えるには、color=”色の名前”を追加。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", capthick=3, linestyle="None", marker="^", color="red", label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

ただしサイズを変更するのは異なり、ms=”サイズ”かもしくは、markersize=”サイズ”になります。

(散布図の時は、s=”サイズ”です)

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", capthick=3, linestyle="None", marker="^", color="red", ms=10, label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

折れ線グラフの時と同様、plt.scatterとplt.errorbarを別で書くことも可能です。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.scatter(x_value, y_value, marker="^", color="red", s=100, label="test")
plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", capthick=3, linestyle="None")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

棒グラフとエラーバー

棒グラフのエラーバーを最後にしたのは、実は理由があります。

棒グラフはplt.errorbarを使わなくても、エラーバーを表示することができます。

その際には、plt.barにyerr=”エラーの値”を追加するだけです。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.bar(x_value, y_value, yerr=y_error, label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

こちらに対しても、capsize=”大きさ”でキャップを表示することができます。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.bar(x_value, y_value, yerr=y_error, capsize=5, label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

ただしこの場合、キャップサイズとエラーバーの色は変更できますが、太さは変更できないようです。

エラーバーの色を変えるには、ecolor=”色”で変更します。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.bar(x_value, y_value, yerr=y_error, capsize=5, ecolor="red", label="test")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

棒グラフでplt.bar、plt.errorbarを分けて書くとこんな感じになります。

x_value = [1, 2, 3, 4, 5]
y_value = [10, 20, 40, 80, 160]

x_error = [0.1, 0.2, 0.3, 0.4, 0.5]
y_error = [5, 10, 15, 20, 25]

fig=plt.figure(figsize=(8,6))

plt.bar(x_value, y_value, label="test")
plt.errorbar(x_value, y_value, yerr=y_error, capsize=10, ecolor="black", capthick=3, linestyle="None")

plt.tick_params(labelsize=20)
plt.legend()
plt.grid()

plt.show()

実行結果

折れ線グラフ、散布図、棒グラフに対してエラーバーを表示するのに、plt.errorbarとplt.plot(折れ線グラフ)、plt.scatter(散布図)、plt.bar(棒グラフ)を分けて書くことにより、より細かく調整することができると考えると、やはり個人的には分けて書いた方があとあと使いやすいかなと思います。

これで2次元グラフはほぼ思い通り操れるようになったかと思います。

ちなみにmatplotlibでは2次元グラフだけでなく、3次元のグラフを描くことも可能です。

その解説に関してはこちらの記事をご覧ください。

次回はPythonで日時を取得する方法を解説していきます。

ということで今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次