ホームページ >バックエンド開発 >Python チュートリアル >記事の内容に適した質問ベースのタイトルをいくつか示します。 * Matplotlib の `plot_surface` 関数を使用して 3D 点の集合から表面をプロットするにはどうすればよいですか? * Matplo での曲面のプロット
3 タプルとして表される 3D 点のコレクションを操作する場合、plot_surface 関数が理想的なオプションであるかどうかはすぐにはわかりません。表面プロット。ニュアンスを詳しく調べて、この関数のデータを準備する方法を調べてみましょう。
plot_surface では、X、Y、Z が 2D 配列である必要があります。関数 f(x, y) -> からの曲面プロットとは異なります。 z ではグリッド ドメインを提供できますが、点群では三角測量が必要になるため課題が生じます。
データは 3D 点のリストであるため、次のことが必要になります。それをplot_surfaceが理解できる形式に変換します。 1 つのアプローチは、次のコード スニペットに示すように、meshgrid を使用してグリッド ドメインを作成することです。
<code class="python">import numpy as np data = [(x1,y1,z1),(x2,y2,z2),.....,(xn,yn,zn)] x, y = zip(*data) # Extract x and y coordinates from the tuples X, Y = np.meshgrid(x, y) # Create a grid domain for X and Y # Convert the z coordinates into a 2D array zs = np.array([z for x, y, z in data]).reshape(X.shape)</code>
これで、必要な 2D 配列形式の X、Y、Z が得られました。
データの準備ができたら、plot_surface:
<code class="python">from mpl_toolkits.mplot3d import Axes3D # Enable 3D plotting import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(111, projection='3d') # Create a 3D subplot ax.plot_surface(X, Y, Z)</code>
を使用して曲面のプロットを続行できます。これにより、指定された点を通過する滑らかな曲面が生成されます。
以上が記事の内容に適した質問ベースのタイトルをいくつか示します。 * Matplotlib の `plot_surface` 関数を使用して 3D 点の集合から表面をプロットするにはどうすればよいですか? * Matplo での曲面のプロットの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。