ホームページ  >  記事  >  バックエンド開発  >  Matplotlib で 3D 点のリストを使用して曲面プロットを作成する方法

Matplotlib で 3D 点のリストを使用して曲面プロットを作成する方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-10-26 14:55:30812ブラウズ

How to Create a Surface Plot in Matplotlib with a List of 3D Points?

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

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