ホームページ  >  記事  >  バックエンド開発  >  Matplotlib を使用して点のコレクションから 3D 曲面プロットを作成するにはどうすればよいですか?

Matplotlib を使用して点のコレクションから 3D 曲面プロットを作成するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-28 03:45:30392ブラウズ

How can I create a 3D surface plot from a collection of points using Matplotlib?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。