初心者でもPythonを使ってみよう

趣味と実益を兼ねたPython学習記

【スポンサーリンク】



【matplotlib.pyplot】errorbarでエラーバー付きグラフを描画する方法【Python】

エラーバー付きグラフの描画

errorbar関数のyerrオプションとxerrオプションを設定することで、それぞれy軸、x軸方向のエラーバー付きグラフを表示することができます。

グラフ表示するデータの準備

表示させるグラフのデータは、以下の通りです。モジュールのインポートも一緒に実行しています。

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = 2.5 * np.sin(x / 20 * np.pi)

以下の例では、subplots関数を用いてグラフオブジェクトを生成しています。subplots関数を用いたグラフの描画については、以下の記事を参照してください。

エラー値が一定の場合

エラー値が一定の場合は、yerrオプションやxerrオプションに値を渡すだけでエラーバーの表示が可能です。

例として、y軸方向にエラーバーを表示させます。

fig, ax = plt.subplots()
ax.errorbar(x, y, yerr=0.5)

出力:

f:id:vigilantPotato:20190714134909p:plain

同様に、x軸方向にエラーバーを表示させます。

fig, ax = plt.subplots()
ax.errorbar(x, y, xerr=0.5)

出力:

f:id:vigilantPotato:20190714134921p:plain

各プロット箇所に一定のエラーバーが追加されました。

エラー値をポイントごとに設定する場合

エラー値が一定ではなく、各プロット箇所ごとに設定したい場合は、プロットデータと同じ長さにしたエラーバー用のデータを準備し、yerrまたはxerrオプションに渡します。

yerr = np.linspace(0.05, 0.2, 10)
fig, ax = plt.subplots()
ax.errorbar(x, y, yerr=yerr)

出力:

f:id:vigilantPotato:20190714134934p:plain

エラーバーを片側だけ表示

uplimsオプション、またはlolimsオプションをTrueに設定すると、エラーバーを片側だけ表示することができます。

uplimsをTrueにするとエラーバーの下側のみが表示され、lolimsをTrueにすると上側のみが表示されます。両方をTrueにすると、両方とも表示されます。

また、これらのオプションを使用すると、エラーバーの先端に「^」が追加されます。

yerr = np.linspace(0.05, 0.2, 10)
fig, ax = plt.subplots()
ax.errorbar(x, y+2, yerr=yerr, label="uplims", uplims=True)
ax.errorbar(x, y+1, yerr=yerr, label="lolims", lolims=True)
ax.errorbar(x, y, yerr=yerr, label="both", uplims=True, lolims=True)
ax.legend()

出力:

f:id:vigilantPotato:20190714135004p:plain

エラーバーのキャップ長の設定

エラーバーの先端に、エラーバーに対して垂直方向にキャップを表示することができます。

キャップを表示させたい場合は、capsizeオプションでキャップ長さを設定します。

yerr = np.linspace(0.05, 0.2, 10)
fig, ax = plt.subplots()
ax.errorbar(x, y, yerr=yerr, capsize=3)

出力:

f:id:vigilantPotato:20190714135053p:plain

[↑ 目次へ]