2015-02-23 76 views
0

我有一個nx3陣列,讓我們把它叫做data,在這裏我想第2列是xy座標和第三列是一個z協調與xy座標相關同一行。表面情節與matplotlib,Python的

我現在想繪製一個表面圖,其中表面與所有的座標相交。

我看過this後,但無法弄清楚。

我知道,我可以使用matplotlib的Axes3Dfig.gca(projection='3d'),它需要3個nxn陣列,在那裏我覺得XY陣列可以X,Y = np.meshgrid(data[:,0],data[:,1])得到,但我不知道如何獲取nxnZ陣中還有僅與每個xy相關聯的座標是1 Z

然後,我想平滑表面,因爲我確信只有少數數據點的表面看起來會很難看,而且我只想表示數據的一般形狀,而具體的值不是太多重要。因此,是否可以在兩維數據點之間進行插值以平滑圖形?

實施例的數據集:

data = np.array([[4260,150,116] 
       [4204,149,1070] 
       [4204,188,470] 
       [4444,140,389] 
       [3255,149,69] 
       [6370,149,1109] 
       [5765,189,3531]]) 

回答

1

嘗試這樣的:

x, y, z = data[:,0], data[:,1], data[:,2] 
grid_x, grid_y = np.mgrid[min(x):max(x):50j, min(y):max(y):50j] 
z = griddata((x, y), z, (grid_x, grid_y), method='cubic')