3次元グラフ
3次元グラフ化*するためのPythonコードを提供します。
この例では、方程式として$ z = \sin(\sqrt{x^2 + y^2}) $を使用します。
1 | import numpy as np |
この例では、numpyを使用して$ (x) $および$ (y) $の値を生成し、それに基づいて$ (z) $を計算しています。
matplotlibライブラリの plot_surface
メソッドを使用して、3Dグラフを描画しています。
方程式やプロットのカスタマイズは必要に応じて変更できます。
[実行結果]
ソースコード解説
以下はソースコードの詳しい説明です。
- NumPyとMatplotlibのインポート:
1
2
3import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
numpy
は数値計算用のライブラリで、このコードでは数値データを生成するために使用されます。matplotlib.pyplot
はグラフ描画用のライブラリで、Axes3D
は3Dグラフを描画するための特殊な軸クラスです。
- データの生成:
1
2
3
4x = np.linspace(-5, 5, 100)
y = np.linspace(-5, 5, 100)
x, y = np.meshgrid(x, y)
z = np.sin(np.sqrt(x**2 + y**2))
np.linspace(-5, 5, 100)
は、$-5$から$5$の範囲を$100$個の等間隔な点で生成します。np.meshgrid(x, y)
は、これらの1次元配列を基に2次元グリッドを生成します。z = np.sin(np.sqrt(x**2 + y**2))
は、与えられた$ (x) $および$ (y) $に対して、$ z = \sin(\sqrt{x^2 + y^2}) $の値を計算します。
- 3Dプロットの作成:
1
2
3fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(x, y, z, cmap='viridis')
plt.figure()
で新しい図を作成し、add_subplot(111, projection='3d')
で3Dのサブプロットを作成します。ax.plot_surface(x, y, z, cmap='viridis')
は、3D曲面を描画します。cmap
はカラーマップを指定します。
- 軸ラベルの追加:
1
2
3ax.set_xlabel('X軸')
ax.set_ylabel('Y軸')
ax.set_zlabel('Z軸')
ax.set_xlabel
、ax.set_ylabel
、ax.set_zlabel
で、それぞれX軸、Y軸、Z軸にラベルを追加します。
- グラフの表示:
1
plt.show()
plt.show()
でグラフを表示します。
このコードは、$ z = \sin(\sqrt{x^2 + y^2}) $の関数を用いて3Dグラフを作成し、その可視化を行っています。
グラフ解説
[実行結果]
上記のグラフは、方程式$ z = \sin(\sqrt{x^2 + y^2}) $をグラフ化したものです。
- $ (x) $および$ (y) $の値は、それぞれ
-5
から5
までの範囲で、100
の等間隔な点で生成されています。 numpy.meshgrid
を使用して、これらの$ (x) $および$ (y) $の値からグリッドを形成しています。- 方程式に基づいて、各$ (x, y) $の組み合わせに対する$ (z) $の値を計算しています。
この場合、$ z = \sin(\sqrt{x^2 + y^2}) $です。 - 3Dプロットでは、matplotlibの
plot_surface
メソッドを使用して、計算された$ (x, y, z) $の値に基づいて曲面を描画しています。 - 軸ラベル(X軸、Y軸、Z軸)が追加されています。
このグラフは、曲面が$ z = \sin(\sqrt{x^2 + y^2}) $の形状になっており、$ (x) $と$ (y) $の変動に応じて波打つような特徴があります。
視覚的には、中心から外側に向かって波の振動が広がっていくような形状が確認できます。