PatchCollection を使ってエラーバーからボックスを作成する

Beginner

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

はじめに

この実験では、PatchCollection を使ってエラーバーからボックスプロットを作成する方法を学びます。ボックスプロットは、データの範囲と分布を表示するのに役立ちます。x 方向と y 方向のバーの限界で定義された四角形のパッチを追加することで、視覚的に魅力的なエラーバープロットを作成できます。

VM のヒント

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

Jupyter Notebook の読み込みには数秒かかる場合があります。Jupyter Notebook の制限により、操作の検証は自動化できません。

学習中に問題がある場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

ライブラリのインポート

まず、必要なライブラリをインポートします。これには、numpymatplotlib が含まれます。

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 方向のバーの限界で定義された四角形のパッチを追加することで、視覚的に魅力的なエラーバープロットを作成することができました。