Matplotlib による 3 次元ヒストグラム

Beginner

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

はじめに

この実験では、Python の Matplotlib を使って 2 次元データの 3 次元ヒストグラムを作成する方法を学びます。ヒストグラムは、値の範囲をビンにグループ化したデータのグラフィカルな表現であり、3 次元ヒストグラムは、可視化に 3 次元目を追加することでこの概念を拡張します。

VM のヒント

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

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

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

ライブラリのインポート

3 次元ヒストグラムを作成する前に、必要なライブラリをインポートする必要があります。この場合、NumPy と Matplotlib を使用します。

import matplotlib.pyplot as plt
import numpy as np

データの生成

次に、ヒストグラムに使用するためのランダムな 2 次元データを生成します。x と y の両方の変数について、NumPy の random.rand() 関数を使用して 100 個のランダムな値を生成します。

## Fixing random state for reproducibility
np.random.seed(19680801)

x, y = np.random.rand(2, 100) * 4

ヒストグラムの作成

データが用意できたので、3 次元ヒストグラムを作成できます。NumPy の histogram2d() 関数を使ってデータの 2 次元ヒストグラムを作成し、その後 Matplotlib の bar3d() 関数を使ってヒストグラムの 3 次元棒グラフを作成します。

hist, xedges, yedges = np.histogram2d(x, y, bins=4, range=[[0, 4], [0, 4]])

## Construct arrays for the anchor positions of the 16 bars.
xpos, ypos = np.meshgrid(xedges[:-1] + 0.25, yedges[:-1] + 0.25, indexing="ij")
xpos = xpos.ravel()
ypos = ypos.ravel()
zpos = 0

## Construct arrays with the dimensions for the 16 bars.
dx = dy = 0.5 * np.ones_like(zpos)
dz = hist.ravel()

ax.bar3d(xpos, ypos, zpos, dx, dy, dz, zsort='average')

ヒストグラムの表示

最後に、Matplotlib の show() 関数を使ってヒストグラムを表示できます。

plt.show()

まとめ

この実験では、Python の Matplotlib を使って 2 次元データの 3 次元ヒストグラムを作成する方法を学びました。また、ランダムなデータを生成し、2 次元ヒストグラムを作成し、そのヒストグラムの 3 次元棒グラフを作成する方法も学びました。これらの手順に従えば、独自のデータを視覚化するための 3 次元ヒストグラムを作成できます。