Matplotlib の曲面プロット
曲面プロットを作成する場合、plot_surface 関数は 3D 空間内の点を表す引数として 2D 配列を必要とします。ただし、3D 点のリストしかない場合は、特別な考慮事項があります。
点群の三角形化
3D 点のリストの場合、plot_surface は使用できません。点をサーフェスに三角形分割する際のあいまいさのため、直接使用されます。 Matplotlib には、点を自動的に三角形分割して曲面にする方法が提供されません。
代替アプローチ: グリッドベースの曲面
曲面を表す関数がない場合は、 fun(x, y) のような関数を使用してグリッドベースのサーフェスを生成できます。このアプローチでは、ポイントのメッシュグリッドを定義し、指定された関数を使用して対応する Z 値を計算します。
<code class="python">import numpy as np import matplotlib.pyplot as plt # Define the function def fun(x, y): return x**2 + y # Create a meshgrid x = y = np.arange(-3.0, 3.0, 0.05) X, Y = np.meshgrid(x, y) # Compute the z-values zs = np.array(fun(np.ravel(X), np.ravel(Y))) Z = zs.reshape(X.shape) # Create the surface plot fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.plot_surface(X, Y, Z)</code>
このアプローチでは、指定された 3D ポイントを通過し、表面を覆う滑らかなサーフェスを作成できます。グリッドの全範囲。
以上がMatplotlib で 3D 点のリストを使用して曲面プロットを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。