17
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

matplotlibで信頼区間(エラーバー)を描画

Posted at

はじめに

授業で信頼区間をグラフにして云々みたいなことを言われたのですが, matplotlibで書き方を知らなかったのでメモ書きしておきます.

書いていくグラフ

下のようなグラフを作ることができます.

example1.png

ちなみにソースコードは以下の通りです.

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に設定されています.

17
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?