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 の間に空の空白を入れずに、希望する範囲を指定する方法はありますか?