Note
Go to the endto download the full example code.
Axes Grid2#
Grid of images with shared xaxis and yaxis.

importmatplotlib.pyplotaspltimportnumpyasnpfrommatplotlibimportcbookfrommpl_toolkits.axes_grid1importImageGriddefadd_inner_title(ax,title,loc,**kwargs):frommatplotlib.offsetboximportAnchoredTextfrommatplotlib.patheffectsimportwithStrokeprop=dict(path_effects=[withStroke(foreground='w',linewidth=3)],size=plt.rcParams['legend.fontsize'])at=AnchoredText(title,loc=loc,prop=prop,pad=0.,borderpad=0.5,frameon=False,**kwargs)ax.add_artist(at)returnatfig=plt.figure(figsize=(6,6))# Prepare imagesZ=cbook.get_sample_data("axes_grid/bivariate_normal.npy")extent=(-3,4,-4,3)ZS=[Z[i::3,:]foriinrange(3)]extent=extent[0],extent[1]/3.,extent[2],extent[3]# *** Demo 1: colorbar at each Axes ***grid=ImageGrid(# 211 = at the position of fig.add_subplot(211)fig,211,nrows_ncols=(1,3),axes_pad=0.05,label_mode="1",share_all=True,cbar_location="top",cbar_mode="each",cbar_size="7%",cbar_pad="1%")grid[0].set(xticks=[-2,0],yticks=[-2,0,2])fori,(ax,z)inenumerate(zip(grid,ZS)):im=ax.imshow(z,origin="lower",extent=extent)cb=ax.cax.colorbar(im)# Changing the colorbar ticksifiin[1,2]:cb.set_ticks([-1,0,1])forax,im_titleinzip(grid,["Image 1","Image 2","Image 3"]):add_inner_title(ax,im_title,loc='lower left')# *** Demo 2: shared colorbar ***grid2=ImageGrid(fig,212,nrows_ncols=(1,3),axes_pad=0.05,label_mode="1",share_all=True,cbar_location="right",cbar_mode="single",cbar_size="10%",cbar_pad=0.05)grid2[0].set(xlabel="X",ylabel="Y",xticks=[-2,0],yticks=[-2,0,2])clim=(np.min(ZS),np.max(ZS))forax,zinzip(grid2,ZS):im=ax.imshow(z,clim=clim,origin="lower",extent=extent)# With cbar_mode="single", cax attribute of all Axes are identical.ax.cax.colorbar(im)forax,im_titleinzip(grid2,["(a)","(b)","(c)"]):add_inner_title(ax,im_title,loc='upper left')plt.show()