Matplotlib を使ったエラーバープロットの作成

Beginner

This tutorial is from open-source community. Access the source code

はじめに

エラーバーは、グラフやチャートにおいて、測定値またはデータポイントの潜在的な誤差または不確定性を示すために使用されます。Python の Matplotlib は、さまざまな種類のエラーバープロットを提供する人気のあるデータ可視化ライブラリです。この実験では、Matplotlib を使って上限と下限を持つエラーバープロットを作成する方法を学びます。

VM のヒント

VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook にアクセスして練習しましょう。

時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。

学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。そうすれば、迅速に問題を解決します。

必要なライブラリをインポートする

NumPy や Matplotlib などの必要なライブラリをインポートして始めましょう。

import matplotlib.pyplot as plt
import numpy as np

データを定義する

次に、プロットするサンプルデータを定義します。ここでは、x 値、y 値、およびそれに対応する誤差値の配列を作成します。

x = np.array([0.5, 1.0, 1.5, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5.0])
y = np.exp(-x)
xerr = 0.1
yerr = 0.2

単純なエラーバープロットを作成する

errorbar関数を使って、標準エラーバー付きの単純なエラーバープロットを作成します。ここでは、x 値と y 値とそれに対応する誤差値を設定します。また、線のスタイルを点線に設定します。

fig, ax = plt.subplots(figsize=(7, 4))

## standard error bars
ax.errorbar(x, y, xerr=xerr, yerr=yerr, linestyle='dotted')

上限を追加する

エラーバーに上限を追加するには、errorbar関数のuplimsパラメータを使用します。また、このプロットと前のプロットを区別するために、y 値に 0.5 の定数値を追加します。

## including upper limits
ax.errorbar(x, y + 0.5, xerr=xerr, yerr=yerr, uplims=True, linestyle='dotted')

下限を追加する

エラーバーに下限を追加するには、errorbar関数のlolimsパラメータを使用します。また、このプロットと前のプロットを区別するために、y 値に 1.0 の定数値を追加します。

## including lower limits
ax.errorbar(x, y + 1.0, xerr=xerr, yerr=yerr, lolims=True, linestyle='dotted')

上限と下限を追加する

エラーバーに上限と下限の両方を追加するには、errorbar関数のuplimslolimsの両方のパラメータを使用します。また、このプロットと前のプロットを区別するために、プロットにマーカーを追加します。

## including upper and lower limits
ax.errorbar(x, y + 1.5, xerr=xerr, yerr=yerr, lolims=True, uplims=True,
            marker='o', markersize=8, linestyle='dotted')

X 軸と Y 軸の両方に制限を追加する

最後に、X 軸と Y 軸の両方に制限を追加します。X 軸のエラーバーに制限を追加するには、xlolimsxuplimsのパラメータを使用します。

## Plot a series with lower and upper limits in both x & y
## constant x-error with varying y-error
xerr = 0.2
yerr = np.full_like(x, 0.2)
yerr[[3, 6]] = 0.3

## mock up some limits by modifying previous data
xlolims = lolims
xuplims = uplims
lolims = np.zeros_like(x)
uplims = np.zeros_like(x)
lolims[[6]] = True  ## only limited at this index
uplims[[3]] = True  ## only limited at this index

## do the plotting
ax.errorbar(x, y + 2.1, xerr=xerr, yerr=yerr,
            xlolims=xlolims, xuplims=xuplims,
            uplims=uplims, lolims=lolims,
            marker='o', markersize=8, linestyle='none')

グラフを表示する

最後に、show関数を使用してグラフを表示します。

## tidy up the figure
ax.set_xlim((0, 5.5))
ax.set_title('Errorbar upper and lower limits')
plt.show()

まとめ

この実験では、Matplotlib を使って上限と下限付きのエラーバープロットを作成する方法を学びました。上限と下限付きのさまざまなプロットを作成するためにerrorbar関数を使用しました。また、X 軸と Y 軸の両方に制限を追加する方法も学びました。