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 にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。

ライブラリのインポート

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