我正在尝试使用matplotlib绘制地形高程数据。我建立了一个nx3 numpy数组,每行包含我的点的x,y,z坐标(它们在x,y平面上的网格中有规律地间隔开)。我试图用这段代码绘制它:
fig = plt.figure()
ax = fig.gca(projection='3d')
print desiredData[:,0]
surf = ax.plot_surface(desiredData[:,0], desiredData[:,1],
desiredData[:,2], rstride =1,
cstride = 1, cmap=cm.jet,
linewidth = 0, antialiased = False)
plt.show()
但是我收到了这个错误:
Traceback (most recent call last):
File "gisConvert.py", line 203, in <module>
linewidth = 0, antialiased = False)
File "C:\Python27\lib\site-packages\mpl_toolkits\mplot3d\axes3d.py", line 663,
in plot_surface
rows, cols = Z.shape
ValueError: need more than 1 value to unpack
我做错了什么?
答案 0 :(得分:4)
如错误所示,
ValueError: need more than 1 value to unpack
您使用的是1D阵列,但plot_surface
需要X
,Y
和Z
的2D阵列。
这就是你得到ValueError
的原因。