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中文網其他相關文章!