0
我想在3D平面上繪製一個小的4x4陣列。我有一個2d陣列s我預覽plt.imshow
並獲得正確的4x4細胞圖像。然而,當我繪製小號到X,Y,Z平面(的x,y,和Ž各自爲4×4陣列),我收到了重採樣(?)的3×3單元映射到所述平面上的圖像。有沒有一種簡單的方法(有可能是...)強制plot_surface
將數據點視爲已知像素大小(dx,dy,dz)的像素配準,以便將數據繪製爲4x4單元格圖像?如何在3D表面上「強制」像素註冊的網格來繪製x,y,z,s?
這是一個短期和簡單的代碼來說明我的問題:
s = np.random.rand(4,4)
fig = plt.figure(1)
ax = fig.add_subplot(111)
ax.imshow(s, interpolation='nearest')
x = np.array([1,1,1,1])
y = np.array([1,2,3,4])
z = y.T
xi, yi = np.meshgrid(x, y)
zi = z*np.ones((4,4))
fig = plt.figure(2)
ax = fig.gca(projection='3d')
color = plt.cm.jet(s)
ax.plot_surface(xi, yi, zi,
rstride=1, cstride=1,
facecolors=color, shade=False,
vmin=s.min(), vmax=s.max())
有什麼建議?
'zi = z * np.ones((5,5))'出於好奇,會做什麼?在這種情況下是什麼? – Torxed
's'是一些物理屬性。由於'xi','yi','zi'和's'必須具有相同的尺寸,所以製作'zi' 5x5是不夠的。 – Shahar