Matplotlib による 3D サーフェスと等高線プロット

Beginner

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

はじめに

この実験では、Matplotlib を使って 3D サーフェスプロットを作成し、グラフの壁に等高線「プロファイル」を投影する方法を示します。

VM のヒント

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

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

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

必要なライブラリをインポートする

このステップでは、3D サーフェスプロットと等高線プロファイルの投影を作成するための必要なライブラリをインポートします。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import axes3d

3D グラフとデータを作成する

このステップでは、3D グラフを作成し、サーフェスプロット用のテストデータを取得します。

## Create a 3D figure
fig = plt.figure()
ax = fig.add_subplot(projection='3d')

## Get test data for the surface plot
X, Y, Z = axes3d.get_test_data(0.05)

3D サーフェスを描画する

このステップでは、テストデータを使って 3D サーフェスを描画し、描画の外観をカスタマイズします。

## Plot the 3D surface
ax.plot_surface(X, Y, Z, edgecolor='royalblue', lw=0.5, rstride=8, cstride=8, alpha=0.3)

## Customize the appearance of the plot
ax.set(xlim=(-40, 40), ylim=(-40, 40), zlim=(-100, 100), xlabel='X', ylabel='Y', zlabel='Z')

グラフの壁に等高線プロファイルを投影する

このステップでは、各次元の等高線を適切なオフセットで描画することにより、グラフの壁に等高線プロファイルを投影します。

## Plot projections of the contours for each dimension
ax.contour(X, Y, Z, zdir='z', offset=-100, cmap='coolwarm')
ax.contour(X, Y, Z, zdir='x', offset=-40, cmap='coolwarm')
ax.contour(X, Y, Z, zdir='y', offset=40, cmap='coolwarm')

描画を表示する

このステップでは、投影された等高線プロファイル付きの 3D サーフェスプロットを表示します。

plt.show()

まとめ

この実験では、Matplotlib を使って 3D サーフェスプロットを作成し、グラフの壁に等高線プロファイルを投影する方法を示しました。手順としては、必要なライブラリのインポート、3D グラフとデータの作成、3D サーフェスの描画、等高線プロファイルの投影、および描画の表示が含まれます。