Pythonによるデータ分析をする際にグラフなどの可視化でよく利用されるmatplotlibでエラーバーを描画する方法について解説します。
エラーバーの描画方法
データ分析をしてグラフ描画をしているとき、ある点に対するエラーバーを表示したくなるようなケースによく遭遇します。エラーバーを表示するためのメソッドとしてerrorbarというメソッドがあります。本記事では、errorbarの基本的な使用方法を解説します。
基本的な使用方法
エラーバーを表示するerrorbarメソッドは以下の例のように使用します。
import numpy as np import matplotlib.pyplot as plt plt.style.use('seaborn-whitegrid') # x軸を用意 x = np.linspace(0, 10, 100) # 誤差の標準偏差を設定 dy = 1.5 # sin(x)に標準偏差1.5の正規分布に従う誤差を追加 y = np.sin(x) + dy * np.random.randn(100) # (x, y)のプロットと誤差範囲(標準偏差)を表示 plt.errorbar(x, y, yerr=dy, fmt='.k') plt.show()
データとしてx軸の値としては、np.linspaceメソッドで等間隔の値を作成し、y軸の値としては、np.sin(x)に平均0, 標準偏差1.5の正規分布に従うランダムな誤差を加えて作成しています。
プロットの際には、errorbarメソッドを使用しますが、(x, y)の指定に加えてyerrで誤差範囲(標準偏差の大きさ)を指定しています。これによりプロットに加えて誤差のバーを表示することができます。fmtはフォーマットを表す引数でこの例ではドットの黒線で表示しています。
今回はよく描画で使用されるだろうy軸方向のエラーバーを表示しましたが、xerrという引数を使うとx軸方向にもエラーバーを表示することができますので、試してみてください。
errorbarの描画カスタマイズ
errorbarメソッドの描画に関して色などを変更したい場合には、以下の例のように引数に各種情報を設定することで描画の様子を変更することが可能になります。
import numpy as np import matplotlib.pyplot as plt plt.style.use('seaborn-whitegrid') # x軸を用意 x = np.linspace(0, 10, 100) # 誤差の標準偏差を設定 dy = 1.5 # sin(x)に標準偏差1.5の正規分布に従う誤差を追加 y = np.sin(x) + dy * np.random.randn(100) # (x, y)のプロットと誤差範囲(標準偏差)を表示、色などをカスタマイズ plt.errorbar(x, y, yerr=dy, fmt='o', color='blue', ecolor='gray', elinewidth=2) plt.show()
上記の例では、点のプロットを青い丸、バーはグレーの太さが2ということで描画してみた例です。このように引数に各種情報を設定することで描画の仕方を変えることができます。
errorbarメソッドには、他にもパラメータとして設定できる項目はいくつかありますので、公式ドキュメントを確認していただければと思います。
errorbarの公式ドキュメントの記載はこちらを参照してください。
上記で紹介しているソースコードについてはgithubにて公開しています。参考にしていただければと思います。