如何使用 Matplotlib 從分散的資料建立平滑的 3D 曲面?

Barbara Streisand
發布: 2024-10-26 07:11:02
原創
142 人瀏覽過

How to Create Smooth 3D Surfaces from Scattered Data Using Matplotlib?

使用 Matplotlib 建立曲面圖

考慮表示 3D 空間中的點的 3 元組列表,任務是產生覆蓋這些點的曲面。

使用 mplot3d 套件中的plot_surface 需要 X、Y 和 Z 的二維數組形式的輸入資料。要轉換給定的資料結構,需要考慮一些因素。

在下列情況下曲面與線圖不同,您需要使用二維陣列定義覆蓋域的網格。當僅處理 3D 點列表時,三角測量變得至關重要。這是因為給定的點雲有多種可能的三角剖分。

對於光滑的表面,可以採取以下方法:

<code class="python">import numpy as np
from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
import random

def fun(x, y):
    return x**2 + y

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)
zs = np.array(fun(np.ravel(X), np.ravel(Y)))
Z = zs.reshape(X.shape)

ax.plot_surface(X, Y, Z)

ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
ax.set_zlabel('Z Label')

plt.show()</code>
登入後複製

此程式碼使用 meshgrid 定義網格,產生對應的Z值,並使用plot_surface建立曲面圖。生成的表面提供了底層資料的平滑表示。

以上是如何使用 Matplotlib 從分散的資料建立平滑的 3D 曲面?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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