ホームページ  >  記事  >  バックエンド開発  >  記事の内容に適した質問ベースのタイトルをいくつか示します。 * Matplotlib の `plot_surface` 関数を使用して 3D 点の集合から表面をプロットするにはどうすればよいですか? * Matplo での曲面のプロット

記事の内容に適した質問ベースのタイトルをいくつか示します。 * Matplotlib の `plot_surface` 関数を使用して 3D 点の集合から表面をプロットするにはどうすればよいですか? * Matplo での曲面のプロット

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 18:33:02914ブラウズ

Here are a few question-based titles that fit the article content:

* How can I plot a surface from a collection of 3D points using Matplotlib's `plot_surface` function?
* Plotting Surfaces in Matplotlib: How do I prepare 3D point data for `plot_surface`

Matplotlib での曲面のプロット

3 タプルとして表される 3D 点のコレクションを操作する場合、plot_surface 関数が理想的なオプションであるかどうかはすぐにはわかりません。表面プロット。ニュアンスを詳しく調べて、この関数のデータを準備する方法を調べてみましょう。

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

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