蟒蛇情节3d彩色地图

时间:2014-04-15 19:36:13

标签: python matplotlib

对于X值,Y值和Z值,我有3个1-D阵列。 我想用X对Y制作一个二维图,颜色为Z.

然而,每当我尝试运行时,我都会

AttributeError: 'list' object has no attribute 'shape'

目前我有:

X=np.array(X)
Y=np.array(Y)
Z=np.array(Z)

fig = pyplot.figure()
ax = fig.add_subplot(111)
p = ax.scatter(X,Y,Z)

我也试过

fig, ax = pyplot.figure()
p = ax.pcolor(X,Y,Z,cmap = cm.RdBu)
cb = fig.colorbar(p,ax=ax)

都给了我同样的错误。

1 个答案:

答案 0 :(得分:2)

plt.scatter的文档需要输入:

matplotlib.pyplot.scatter(x, y, s=20, ...)

哪个不是(x,y,z)。您将s(点的大小)设置为Z值。给'" Z"颜色值,将其作为c参数传递:

import numpy as np
import pylab as plt

# Example points that use a color proportional to the radial distance
N = 2000
X = np.random.normal(size=N)
Y = np.random.normal(size=N)
Z = (X**2+Y**2)**(1/2.0)

plt.scatter(X,Y,c=Z,linewidths=.1)
plt.axis('equal')
plt.show()

enter image description here