使用Matplotlib 在3D 空間中繪製帶點的曲面
在本文中,我們將探討如何建立包含以下集合的曲面圖:使用Python 的Matplotlib 函式庫(特別是其mplot3d 模組)繪製三維空間中的點。
mplot3d 中的plot_surface 函數需要 X、Y 和 Z 參數的二維數組,而不是像下面這樣的 3 元組列表你有。因此,第一步是將資料準備為必要的格式。
對於曲面,與線圖不同,您將需要一個表示域的 2D 陣列網格。使用離散點(例如您擁有的三元組)會帶來挑戰,因為有多個潛在的三角剖分可以創建曲面。
考慮產生平滑曲面的Python 程式碼,其中f(x, y) = x^2 y:
<code class="python">import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D 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) # Calculate the Z values for each point in X and Y zs = np.array(fun(np.ravel(X), np.ravel(Y))) Z = zs.reshape(X.shape) # Plot the surface ax.plot_surface(X, Y, Z) ax.set_xlabel('X Label') ax.set_ylabel('Y Label') ax.set_zlabel('Z Label') plt.show()</code>
在此範例中,X 和Y 是表示域的二維數組,Z 是每個點對應的值數組。 plot_surface 函數使用這些陣列來建立平滑的表面。此方法適用於數學函數定義的表面。
但是,如果您的資料僅由離散 3D 點組成,則可能需要考慮其他選項。
以上是如何使用 Matplotlib 從點集合建立 3D 曲面圖?的詳細內容。更多資訊請關注PHP中文網其他相關文章!