Python で誤差棒付きの 3D プロットを作成する

Beginner

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

はじめに

このチュートリアルでは、Python の Matplotlib ライブラリを使って誤差棒付きの 3D プロットを作成する方法を学びます。誤差棒は、データの変動性をグラフ化したもので、科学や工学の分野では測定値や統計推定値の不確定性を示すために頻繁に使用されます。

VM のヒント

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

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

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

ライブラリのインポート

まず、必要なライブラリをインポートする必要があります。それは Matplotlib と NumPy です。NumPy は、配列や行列のサポートを提供する数値計算ライブラリであり、Matplotlib はデータ可視化ライブラリです。

import matplotlib.pyplot as plt
import numpy as np

3D プロットを作成する

次に、figureオブジェクトのadd_subplotメソッドを使って 3D プロットを作成します。3D プロットを作成したいことを指定するために、projectionパラメータを'3d'に設定します。

ax = plt.figure().add_subplot(projection='3d')

プロット用のデータを生成する

パラメトリック曲線を作成することで、プロット用のデータを生成します。パラメトリック曲線は、パラメータの関数として x、y、および z 座標を記述する方程式のセットです。0 から 2πまでの値の配列を作成するために、NumPy のarange関数を使用します。その後、これらの値を使って三角関数を用いて x、y、および z 座標を計算します。

t = np.arange(0, 2*np.pi+.1, 0.01)
x, y, z = np.sin(t), np.cos(3*t), np.sin(5*t)

プロットに誤差棒を追加する

Axes3Dオブジェクトのerrorbarメソッドを使って、プロットに誤差棒を追加します。どのデータポイントが上限と下限を持つかを指定する配列に、zuplimszlolimsパラメータを設定します。誤差棒の頻度を制御するために、erroreveryパラメータを設定します。

estep = 15
i = np.arange(t.size)
zuplims = (i % estep == 0) & (i // estep % 3 == 0)
zlolims = (i % estep == 0) & (i // estep % 3 == 2)

ax.errorbar(x, y, z, 0.2, zuplims=zuplims, zlolims=zlolims, errorevery=estep)

プロットをカスタマイズする

set_xlabelset_ylabel、およびset_zlabelメソッドを使って、x 軸、y 軸、および z 軸にラベルを追加することで、プロットをカスタマイズできます。

ax.set_xlabel("X label")
ax.set_ylabel("Y label")
ax.set_zlabel("Z label")

プロットを表示する

最後に、showメソッドを使ってプロットを表示します。

plt.show()

まとめ

このチュートリアルでは、Matplotlib を使って誤差棒付きの 3D プロットを作成する方法を学びました。NumPy を使ってプロット用のデータを生成し、errorbarメソッドを使って誤差棒を追加しました。また、x 軸、y 軸、z 軸にラベルを追加することでプロットをカスタマイズしました。