0

我将二进制文件中的数据读入numpy带有np.fromfile. 这些数据表示网格上的Z值,其间距和形状是已知的,因此将 1D 数组重新整形为网格的形状并使用 绘制是没有问题的plt.imshow。因此,如果我有N个网格,我可以绘制N个子图,在一个图中显示所有数据,但我真正想做的是将它们绘制为一张图像。

我不能只是堆叠数组,因为每个数组中的数据间隔不同,而且它们具有不同的形状。

我的想法是将所有网格“超采样”到最好的网格、堆栈和绘图的间距,但我不确定这是一个好主意,因为这些网格文件可能会变得非常大。

顺便说一句:假设我想这样做,我该怎么做:

    0, 1, 2
    3, 4, 5

到:

    0, 0, 1, 1, 2, 2
    0, 0, 1, 1, 2, 2
    3, 3, 4, 4, 5, 5
    3, 3, 4, 4, 5, 5

我愿意接受任何建议。

谢谢,

沙哈尔

4

1 回答 1

0

如果你只是情节,答案是:不要。plt.imshow有一个关键字参数extent,您可以在绘图时使用它来缩放想象。除此之外,我建议使用 scipy.ndimage.zoom,order=0,它相当于重复值,但是您可以轻松缩放到任何大小或使用不同的顺序来获得一些平滑的插值。np.tile也可以是非常简单的缩放选项。

这是一个例子:

a = np.arange(9).reshape(3,3)
b = np.arange(36).reshape(6,6)

plt.imshow(a, extent=[0,1,0,1], interpolation='none')
plt.imshow(b, extent=(1,2,0,1), interpolation='none')
# note scaling is "broke"
plt.xlim(0,2)

当然,要获得相同的颜色范围,您应该添加vim=...vmax关键字。

于 2012-08-28T09:37:45.267 回答