Matplotlib を使った 3D 曲面の描画

PythonPythonBeginner
今すぐ練習

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

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験は、Python の Matplotlib を使って 3D 曲面を描画する方法に関する手順を追ったチュートリアルです。3D 曲面は coolwarm カラーマップで着色され、「antialiased=False」を使用することで不透明になります。このチュートリアルでは、.LinearLocator と z 軸の目盛りラベルのカスタムフォーマットの使用方法も示されています。

VM のヒント

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

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

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

ライブラリのインポート

import matplotlib.pyplot as plt
import numpy as np

from matplotlib import cm
from matplotlib.ticker import LinearLocator

このチュートリアルで必要なライブラリをインポートします。Matplotlib は、MATLAB と似たインターフェイスを提供する Python 用のグラフ描画ライブラリです。Numpy は、Python の科学計算のための基本パッケージです。

グラフと軸の作成

fig, ax = plt.subplots(subplot_kw={"projection": "3d"})

subplot_kw パラメータを "projection": "3d" に設定して、グラフと軸を作成します。これにより、グラフの 3D 投影が作成されます。

データの作成

X = np.arange(-5, 5, 0.25)
Y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(X, Y)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)

ここでは、グラフ用のデータを作成します。XY の値を、-5 から 5 まで 0.25 の間隔で等間隔に設定された配列として作成します。次に、np.meshgrid() を使って XY の値のメッシュグリッドを作成します。このメッシュグリッドを使って、原点からの距離である R の値を計算します。そして、Rsin() 関数を使って Z の値を計算します。

曲面を描画する

surf = ax.plot_surface(X, Y, Z, cmap=cm.coolwarm,
                       linewidth=0, antialiased=False)

plot_surface() 関数を使って曲面を描画します。曲面に coolwarm カラーマップで色を付けるために、XYZ の値とともに、cmap パラメータを cm.coolwarm に設定して渡します。ワイヤーフレームを削除するために linewidth=0 も設定し、曲面を不透明にするために antialiased=False も設定します。

Z軸をカスタマイズする

ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
## A StrMethodFormatter is used automatically
ax.zaxis.set_major_formatter('{x:.02f}')

set_zlim() 関数を使ってZ軸の範囲を -1.01 から 1.01 に設定することで、Z軸をカスタマイズします。次に、set_major_locator() 関数を使って、LinearLocator(10) を使ってZ軸の目盛りの数を 10 に設定します。最後に、set_major_formatter() 関数を使って、StrMethodFormatter を使ってZ軸の目盛りのラベルをフォーマットします。

カラーバーを追加する

fig.colorbar(surf, shrink=0.5, aspect=5)

colorbar() 関数を使って、グラフにカラーバーを追加します。surf オブジェクトを渡し、カラーバーのサイズを調整するために shrink=0.5aspect=5 を設定します。

まとめ

このチュートリアルでは、Python の Matplotlib を使って 3D 曲面を描画する方法を示しました。グラフと軸を作成し、データを作成し、曲面を描画し、Z 軸をカスタマイズし、カラーバーを追加しました。Matplotlib は、Python でビジュアライゼーションを作成するための強力なツールです。