我目前能够根据一些数据绘制pcolor样式图。数据由每个数据点(X,Y,Z)的三个坐标组成。
我的数据按以下方式构建:
X: 1D array
shape = [500,0]
Y: 1D array
shape = [700,0]
Z: 2D array
shape = [500, 700]
因此,我的Z数组的行对应于X坐标,而我的列对应于Y坐标。
然后在pcolor图上绘制数据,我只是做了:
plt.pcolormesh(X,Y,Z.T)
由于pcolormesh希望接收输入数据的方式,因此需要转置。
现在我想使用plot_surface绘制与表面相同的数据。但是,我在以必要的方式构建数据时遇到了问题。任何人都可以提供任何指导吗?
答案 0 :(得分:1)
plot_surface期望所有输入数组都是2D。
您可以使用numpy.meshgrid生成网格点
In [78]: X = np.arange(500)
In [79]: Y = np.arange(700)
In [83]: xx, yy = np.meshgrid(X, Y)
In [84]: xx.shape
Out[84]: (700, 500)
In [85]: yy.shape
Out[85]: (700, 500)
然后,您可以致电plot_surface(xx, yy, Z.T)