1

我目前能够从一些数据中绘制 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. 但是,我在以必要的方式构建数据时遇到了问题。任何人都可以提供任何指导吗?

4

1 回答 1

1

plot_surface期望所有输入数组都是二维的。

您可以使用 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)

于 2013-01-22T15:59:21.257 回答