下面是我的功用:類型錯誤「類型」對象有沒有屬性「__getitem__」繪製三維積時
def draw3D(draw_tick, matrixArray):
print "Drawing tick = %d\n" % draw_tick
matrix = matrixArray[draw_tick - 450]
fig = plt.figure()
ax = fig.gca(projection='3d')
X = np.arange(-40, 40, 1)
Y = np.arange(-40, 40, 1)
X, Y = np.meshgrid(X, Y)
Z = np.matrix[Y+40][X+40]
surf = ax.plot_surface(X, Y, Z, rstride=1, cstride=1,cmap=cm.coolwarm,linewidth=0, antialiased=False)
ax.set_zlim(-1.01, 1.01)
ax.zaxis.set_major_locator(LinearLocator(10))
ax.zaxis.set_major_formatter(FormatStrFormatter('%.02f'))
fig.colorbar(surf, shrink=0.5, aspect=5)
plt.show()
plt.close()
我想提請與變量X,Y,Z三維繪圖。
TypeError: 'type' object has no attribute '__getitem__'
此錯誤點到Z的線路:
Z = np.matrix[Y+40][X+40]
我想這一點(矩陣)的值保存到ž
誰能幫助我解決這個問題?
非常感謝!
更新我的問題: 我有一個matrixArray包含數百個81 * 81的矩陣。 我想在該數組中繪製一個矩陣的圖。 所以我宣佈:
matrix= matrixArray[draw_tick - 450]
決定特定的一個。然後,我想將矩陣位置設置爲X & Y,並將該位置的值設置爲Z.但是,我希望我的X和Y從-40到+40,這就是爲什麼我要將40添加到兩個座標軸。
'np.matrix'是一個類型的對象,你不能索引。你想在那裏做什麼? –
我只想給Z這個點的價值。那麼我該怎麼做? –
你是不是想用'matrix'代替'np.matrix'? –