如何在 Matplotlib 中使用 3D 點列表建立曲面圖?

Mary-Kate Olsen
發布: 2024-10-26 14:55:30
原創
821 人瀏覽過

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

Matplotlib 中的曲面圖

建立曲面圖時,plot_surface 函數需要 2D 陣列作為參數來表示 3D 空間中的點。但是,如果您只有 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!