はじめに
この実験では、PatchCollection を使ってエラーバーからボックスプロットを作成する方法を学びます。ボックスプロットは、データの範囲と分布を表示するのに役立ちます。x 方向と y 方向のバーの限界で定義された四角形のパッチを追加することで、視覚的に魅力的なエラーバープロットを作成できます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。
学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
ライブラリのインポート
まず、必要なライブラリをインポートします。これには、numpy と matplotlib が含まれます。
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.collections import PatchCollection
from matplotlib.patches import Rectangle
データの準備
次に、ボックスプロット用のデータを準備します。x 値と y 値、およびエラー値のダミーデータを作成します。
## データポイントの数
n = 5
## ダミーデータ
np.random.seed(19680801)
x = np.arange(0, n, 1)
y = np.random.rand(n) * 5.
## ダミーエラー(上下)
xerr = np.random.rand(2, n) + 0.1
yerr = np.random.rand(2, n) + 0.2
エラーボックス用の関数を作成する
ここでは、make_error_boxes という関数を作成します。この関数は、x 方向と y 方向のバーの限界で定義された四角形のパッチを作成します。
def make_error_boxes(ax, xdata, ydata, xerror, yerror, facecolor='r',
edgecolor='none', alpha=0.5):
## データポイントをループします。各ポイントのエラーからボックスを作成します
errorboxes = [Rectangle((x - xe[0], y - ye[0]), xe.sum(), ye.sum())
for x, y, xe, ye in zip(xdata, ydata, xerror.T, yerror.T)]
## 指定された色/透明度でパッチコレクションを作成します
pc = PatchCollection(errorboxes, facecolor=facecolor, alpha=alpha,
edgecolor=edgecolor)
## コレクションを軸に追加します
ax.add_collection(pc)
## エラーバーを描画します
artists = ax.errorbar(xdata, ydata, xerr=xerror, yerr=yerror,
fmt='none', ecolor='k')
return artists
グラフと軸を作成する
ここでは、plt.subplots() を使ってボックスプロット用のグラフと軸を作成します。
## グラフと軸を作成する
fig, ax = plt.subplots(1)
エラーボックスを作成する関数を呼び出す
ここでは、make_error_boxes() 関数を呼び出して、グラフにエラーボックスを作成します。
## エラーボックスを作成する関数を呼び出す
_ = make_error_boxes(ax, x, y, xerr, yerr)
グラフを表示する
最後に、plt.show() を使ってグラフを表示します。
plt.show()
まとめ
この実験では、Matplotlib の PatchCollection を使ってエラーバーからボックスプロットを作成する方法を学びました。x 方向と y 方向のバーの限界で定義された四角形のパッチを追加することで、視覚的に魅力的なエラーバープロットを作成することができました。