使用matplotlib plot_surface绘制地形数据

时间:2010-12-20 07:03:44

标签: python numpy matplotlib plot

我正在尝试使用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

我做错了什么?

1 个答案:

答案 0 :(得分:4)

如错误所示,

ValueError: need more than 1 value to unpack

您使用的是1D阵列,但plot_surface需要XYZ的2D阵列。

这就是你得到ValueError的原因。