2

我正在使用 AxesGrid 类制作一个看起来像这样的图:带有 imshow 和轮廓的 AxesGrid

代码基本上是这样的:

      grid = AxesGrid(fig,
                111,
                nrows_ncols = (2,2),
                axes_pad = 0.50,
                label_mode = "all",
                cbar_location='right',
                cbar_mode='single',
                cbar_pad =0.3,
                cbar_size='5%'
                )

然后对于 4 个面板中的每一个,我将其称为 imshow 和轮廓,如下所示:

       # some definitions etc.


        im1 = grid[0].imshow(np.transpose(De[i1:i2,j1:j2]),
           aspect='equal',
           vmin=vmin, vmax = vmax,
           origin='lower',
           extent=extent)


    # some other stuff [...]


        grid[0].contour(np.transpose(F[i1:i2,j1:j2]),levels=levls,
                extent=extent,colors='k',cmap=None)

    # and so on for the 3 other panels

唯一的区别是现在,我希望图像对 extent 关键字具有不同的值。假设我希望右上图像的范围为 (31.5,35.5,11,14),右下面板的范围为 (29.5, 33.5, 11, 14),我得到这个:

新情节

似乎 matplotlib 调整了轴。有没有办法指定我想要的范围并且在我的数据和 ax 之间没有空白?

4

1 回答 1

0

添加参数:

share_x=False

到您的 Grid 一代。然后您可以单独设置每个图的 xlim。

于 2013-01-09T20:03:42.927 回答