Matplotlib を使用した 3D 空間内の点による曲面のプロット
この記事では、次のコレクションを含む曲面プロットを作成する方法を検討します。 Python の Matplotlib ライブラリ、特に mplot3d モジュールを使用して 3 次元空間内の点を取得します。
mplot3d の Lot_surface 関数には、引数として 3 タプルのリストではなく、X、Y、Z 引数の 2 次元配列が必要です。あなたが持っている。したがって、最初のステップは、データを必要な形式に準備することです。
曲面の場合、線プロットとは異なり、ドメインを表す 2D 配列グリッドが必要になります。 3 タプルのような離散点を使用する場合、面を作成できる三角形分割が複数ある可能性があるため、課題が生じます。
滑らかな面を生成する次の Python コードを考えてみましょう。ここで、f(x, y) = x^2 y:
<code class="python">import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D fig = plt.figure() ax = fig.add_subplot(111, projection='3d') x = y = np.arange(-3.0, 3.0, 0.05) X, Y = np.meshgrid(x, y) # Calculate the Z values for each point in X and Y zs = np.array(fun(np.ravel(X), np.ravel(Y))) Z = zs.reshape(X.shape) # Plot the surface ax.plot_surface(X, Y, Z) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()</code>
この例では、X と Y はドメインを表す 2D 配列であり、Z は各点に対応する値の配列です。関数 Lot_surface は、これらの配列を使用して滑らかな表面を作成します。このアプローチは、数学関数によって定義された表面に適しています。
ただし、データが離散 3D 点のみで構成されている場合は、他のオプションを考慮する必要がある場合があります。
以上がMatplotlib を使用して点のコレクションから 3D 曲面プロットを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。