【Matplotlib】エラーバー付きの折れ線グラフや散布図 (errorbar)

実験データには基本誤差がつきもので,グラフ上にエラーバーで表示させる必要があります

Pythonでは少ないコードで簡単にエラーバー付きのグラフを表示させることができます

本記事ではPythonのMatplotlibでグラフを描画する際に,エラーバーを表示する方法について詳しく解説します

折れ線グラフへのグラフのエラーバー表示から,散布図への適用,そして詳細なAxes.errorbar関数の引数まで紹介します

目次

折れ線グラフのエラーバー (Axes.errorbar)

Matplotlibでエラーバーを表示するにはAxes.errorbar関数を使います

Axes.errorbar
引数
  • x, y (float or 配列) : データの座標
  • xerr, yerr (float or 配列) : エラーバーの幅.±数値で表示.
  • fmt (文字列) : フォーマット文字列で,線種,線色,マーカーを一度に指定可能
  • ecolor (color) : エラーバーの線色
  • elinewidth (float) : エラーバーの線の太さ
  • capsize (float) : エラーバーのキャップの長さ
  • capthick (float) : エラーバーのキャップ厚さ
  • barsabove (bool) : エラーバーとマーカーのz方向の位置
  • lolims, uplims, xlolims, xuplims (bool) : エラーバーが矢印で表示
  • errorevery (int) : エラーバーの表示頻度
返値

ErrorbarContainer

公式ドキュメント

matplotlib.axes.Axes.errorbar — Matplotlib 3.6.0 documentation

エラーバーを配列で指定 (yerr)

最もシンプルなエラーバー付き折れ線グラフです

エラーバーの数値は配列で指定します

下記のタブにコードとフローチャートの解説をしています

import matplotlib.pyplot as plt
import numpy as np

# step1 データの作成
x = np.arange(5)
y = [4.6, 3.6, 5, 4.2, 2.7]
yerr = [0.6, 0.9, 1.2, 0.5, 0.7]

# step2 グラフフレームの作成
fig, ax = plt.subplots()

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr)

ax.set_xlabel('X label')
ax.set_ylabel('Y label')
ax.set_title('Simple errorbar')

plt.show()

エラーバーを数値のみで指定 (xrr, yerr)

最もシンプルなエラーバー付き折れ線グラフです

エラーバーは1つの数値のみで指定します

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, xerr=0.2, yerr=0.4)

フォーマットの設定と散布図 (fmt)

fmt(フォーマット文字列)は,下記のようにマーカー,線種,色を一度に指定できます

fmt = '[marker][line][color]'

線を無しにして,マーカーのみにすると散布図にすることも可能です

fmtを使って3種類のグラフを作成しました

# step3 エラーバー付き折れ線グラフ
# 円形+緑色+散布図
ax.errorbar(x, y, yerr=0.4, fmt='og' ,label='fmt="og"')
# 四角形+赤色+一点鎖線
ax.errorbar(x, [i+2 for i in y], yerr=0.4, fmt='sr-.' ,label='fmt="sr-."')
# 星形+シアン+点線
ax.errorbar(x,  [i+4 for i in y], yerr=0.4, fmt='*c:' ,label='fmt="*c:"')

エラーバーの色と太さ

このセクションでは,エラーバーの色と太さの指定方法について解説します

エラーバーの色 (ecolor)

エラーバーの色はAxes.errorbar関数の引数であるecolorを使用します

下記ではecolor=’red’で赤色にしました

ecolor=Noneの場合はマーカーと同じ色になります

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr=0.4, fmt='o-', ecolor='red')

エラーバーの太さ (elinewidth)

エラーバーの太さはAxes.errorbar関数の引数であるelinewidthを使用します

下記ではelinewidth=’0.5′としました

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr=0.4, fmt='o-', elinewidth=0.5)

エラーバーのキャップ

このセクションでは,エラーバーの幅を表すキャップの長さと厚さの指定方法について解説します

また,キャップを矢印にする方法についても解説します

キャップの長さ (capsize)

エラーバーのキャップの長さはAxes.errorbar関数の引数であるcapsizeを使用します

下記ではcapsize=0で,キャップ部分を排除しました

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr=0.4, fmt='o-', ecolor='red', capsize=0)

キャップの太さ (capthick)

エラーバーのキャップの太さはAxes.errorbar関数の引数であるcapthickを使用します

下記ではcapthick=5で,キャップ部分を太くしました

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr=0.4, fmt='o-', ecolor='red', capthick=5)

y方向のキャップを矢印に変更 (uplims, lolims)

Axes.errorbar関数の引数であるuplims or lolimsで,エラーバーのキャップを矢印に変更できます

下記ではuplimsはy方向プラス側lolimsはy方向マイナス側です

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr=0.4, fmt='o-', uplims=True, label='uplims')
ax.errorbar(x, [i+2 for i in y], yerr=0.4, fmt='o-', lolims=True, label='lolims')

x方向のキャップを矢印に変更 (xuplims, xlolims)

Axes.errorbar関数の引数であるxuplims or xlolimsで,エラーバーのキャップを矢印に変更できます

下記ではxuplimsはx方向プラス側xlolimsはx方向マイナス側です

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, xerr=0.2, fmt='o-', xuplims=True, label='xuplims')
ax.errorbar(x, [i+2 for i in y], xerr=0.2, fmt='o-', xlolims=True, label='xlolims')

エラーバーの表示スタイル

このセクションでは,エラーバーの表示に関係する引数について解説します

エラーバーのz位置や表示頻度,矢印表示を指定します

エラーバーのz位置 (barsabove)

エラーバーとマーカーのz方向の位置関係はbarsaboveで変更できます

Axes.errorbar関数の引数であるbarsabove=Trueでエラーバーがマーカーより前面に表示されます

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr=0.4, fmt='o-', ecolor='gray', barsabove=True)

エラーバーの表示頻度 (errorevery)

エラーバーの表示頻度はAxes.errorbar関数の引数であるerroreveryを使用します

下記ではerrorevery=2で,2データごとにエラーバーを表示しました

# step3 エラーバー付き折れ線グラフ
ax.errorbar(x, y, yerr=0.4, fmt='o-', ecolor='red', errorevery=2)

参考文献

Axes.errorbar関数

エラーバーの書き方

シェアしてくださると嬉しいです!
  • URLをコピーしました!

コメント

コメントする

目次