我想用matplotlib做3d圖。matplotlib線框圖/三維圖如何
數據如下:我有一個矩陣,每行包含Y座標的3d圖。每行第一個元素是3d圖的X座標。最後,第二個矩陣在X,Y位置包含每個點的高位。這第二個矩陣包含了我的Z座標。兩個矩陣都是使用Python的數組的數組。我想知道如何轉換數據,以便獲得:
- 有與X,像這樣(圖片可在線)各一維信號
- 線框情節爲相同的數據,像一個陰謀這
我寫了一個輔助函數的線框工作,
######## HELPER FOR PLOT 3-D
def plot_3d(name,X,Y,Z):
fig = plt.figure(name)
ax = fig.gca(projection='3d')
X = np.array(X)
Y = np.array(Y)
Z = np.array(Z)
ax.plot_wireframe(X,Y,Z,rstride=10,cstride=10)
ax.set_xlabel('X Label')
ax.set_ylabel('Y Label')
plt.show()
,但我不知道如何轉換數據X,Y, Z使它們符合matplotlib函數的要求,這些函數需要X,Y,Z的2D列表。
對於第一張圖,我讀了幫助,並且想要在3d中使用2D圖。示例源代碼給出:
x = np.linspace(0, 1, 100)
y = np.sin(x * 2 * np.pi)/2 + 0.5
ax.plot(x, y, zs=0, zdir='z', label='zs=0, zdir=z')
其中z是常數座標。在我的情況下,x是常數座標。我適應
fig = plt.figure('2d profiles')
ax = fig.gca(projection='3d')
for i in range(10):
x = pt ## this is a scalar
y = np.array(y)
z = np.array(z)
ax.plot(xs = x, y, z, xdir='x')
plt.show()
但有警告:non-keyword arg after keyword arg
。怎麼修?
感謝和問候
你的意思是一個例外。嘗試用'ax.plot(xs = x,ys-y,zs = z,xdir ='x')改變'ax.plot(xs = x,y,z,xdir ='x')' – pelson 2012-08-01 17:27:34