我正在尝试使用 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
需要二维数组 X
、 Y
和 Z
。这就是您获得
ValueError
的原因。关于python - 使用 matplotlib plot_surface 绘制地形数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4487549/