はじめに
授業で信頼区間をグラフにして云々みたいなことを言われたのですが, matplotlibで書き方を知らなかったのでメモ書きしておきます.
書いていくグラフ
下のようなグラフを作ることができます.
ちなみにソースコードは以下の通りです.
import numpy as np
from matplotlib import pyplot as pp
fig = pp.figure()
ax = fig.add_subplot(1,1,1)
x_list = [1.2, 1.8]
y_list = [10.2, 14.3]
# エラーバーの範囲
interval_list = [2.5, 3.4]
# 各エラーバーの描画
for x, y, interval in zip(x_list, y_list, interval_list):
ax.errorbar(x, y, interval, fmt='ro', capsize=4, ecolor='black')
ax.set_xlim([0.8,2.2])
pp.show()
errorbar()の引数ついて
エラーバーを描画するにあたって, 重要な関数はerrorbar()
です.
たぶんfig
でもaxes
でも似たような動作なので気にせず使っていきましょう.
以下に主な引数について説明していきます.
エラーバーの幅 : xerr, yerr
エラーバーをx軸方向に伸ばしたいのであればxerr
, y軸方向に伸ばしたいのであればyerr
を使います.
与えたxのサイズをNとすると,
入力サイズ | 動作 |
---|---|
1 | すべてのデータに対して, +/-方向にその幅分エラーバーを伸ばす |
N | 各々のデータに対して, +/-方向にその幅分エラーバーを伸ばす |
(2,N) | 1行目の方に-方向, 2行目の方に+方向の幅を記述. 各データに対しその幅分のエラーバーを伸ばす |
になるみたいです. 正直一番下を利用したことがないので自信はないです.
エラーバーの設定 : ecolor, elinewidth, linestyle, alpha
引数 | 説明 | 例 |
---|---|---|
ecolor | エラーバーの色を設定する | ecolor='black' とか ecolor='#F000FF' など |
elinewidth | エラーバーの太さを設定する | elinewidth=3 |
linestyle | エラーバーのスタイルを変更する | linestyle = ':' |
alpha | エラーバーの透明度を設定する (0$\leq$alpha$\leq$) | alpha = 0.3 |
ちなみに色の名前は公式ページで見ることができます. | ||
また色はカラーコードでも設定できるのでそっちに馴染んでいる人はそっちでもいいかもしれないです. | ||
他にもmatplotlibのデフォルトカラーが使いたい場合は'C0' や'C1' のようにすると利用できます. |
linestyleは他でもおなじみなので説明はいらないかもしれませんが書いておきます.
エラーバーを破線にしたりフツーの線にしたりできます.
これについても公式ページを見るとどのような線にするか選べます.
エラーバーの中心の点 : fmt
エラーバーの中心の点のフォーマットを設定します. 詳しくは知らないのですが, 色+形をstr型で渡してあげます.
例 | 構造 | 説明 |
---|---|---|
fmt = 'ro' | red と o | 赤く塗りつぶされた丸 |
fmt = '^b' | ^ と blue | 青く塗りつぶされた上向き三角 |
fmt = '*C0' | * と C0 | matplotlibの0番目のデフォルトカラーで塗りつぶされた星 |
点の形については公式ページにあるのでそちらを参照してください.
文字列も利用できますが正直使わないような…
線の先端のあれ : capsize, capthick
線の両端の横棒-の長さと太さを設定します.
どちらもデフォルトではNone
をとるため, 横棒が欲しい場合はcapsize
を設定してあげてください.
引数 | 説明 | 例 |
---|---|---|
capsize | 線の両端の横棒の長さを設定する | capsize = 3 |
capthick | 線の両端の横棒の分厚さを設定する | capthick = 2 |
その他 : label
legend(用例)を利用するときに必要なあれです.
特に説明はありません.
おまけ
他の引数で使わなものを一部載っけておきます.
また思いつき次第追記するかもしれません.
エラーバーを点の上に重なるように表示する
barsabove = True
もちろんデフォルトではFalse
に設定されています.