类型错误“类型”对象有没有属性“__getitem__”绘制三维积时
下面是我的功用:类型错误“类型”对象有没有属性“__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添加到两个坐标轴。
numpy.matrix是一个类(Python中的类是type
的实例),并且您试图访问它,就好像它是嵌套数组一样。您可能需要改为matrix
中的值。
numpy.matrix实际上是一个类,而不是函数 –
从调用帮助(np.matrix),我们得到:
| Examples
| --------
| >>> a = np.matrix('1 2; 3 4')
| >>> print a
| [[1 2]
| [3 4]]
|
| >>> np.matrix([[1, 2], [3, 4]])
| matrix([[1, 2],
| [3, 4]])
|
您必须创建矩阵的一个实例。也许你想要做:
Z = np.matrix(YOUR_ndarray_AS_ARGUMENT)
但是我想要Z该特定点的价值。那么我应该如何存储矩阵[Y + 40] [X + 40]? –
'np.matrix'是一个类型的对象,你不能索引。你想在那里做什么? –
我只想给Z这个点的价值。那么我该怎么做? –
你是不是想用'matrix'代替'np.matrix'? –