AxesGrid与imshow:绘图必须具有相同的范围吗?

时间:2013-01-09 19:06:35

标签: python matplotlib

我正在使用AxesGrid类制作一个如下图:AxesGrid with imshow and contour

代码基本上如下所示:

      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)的范围,我得到这个:

new plot

看来matplotlib会调整轴。有没有办法指定我想要的范围,而且我的数据和斧头之间没有空白空格?

1 个答案:

答案 0 :(得分:0)

添加参数:

share_x=False

到您的网格生成。然后你可以单独设置每个图的xlim。