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

我究竟做错了什么?

最佳答案

正如错误所暗示的那样,

ValueError: need more than 1 value to unpack

您使用的是一维数组,但 plot_surface 需要二维数组 XYZ

这就是您获得 ValueError 的原因。

关于python - 使用 matplotlib plot_surface 绘制地形数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4487549/

10-10 14:51