Python 添加未保存到图中的\u轴颜色栏对象

Python 添加未保存到图中的\u轴颜色栏对象,python,matplotlib,colorbar,Python,Matplotlib,Colorbar,我正试图将添加了颜色条的四面板图保存为.eps图形,但是,仅保存面板图,从而将颜色条从应位于图底部的添加轴上切断。有人知道如何确保色条被保存吗?代码如下,谢谢 fig = plt.figure(figsize=(4.5,3.75)) ax = plt.subplot(221) lats,lons = wrf.latlon_coords(totrain) bm = wrf.get_basemap(rainc) bm.drawcoastlines(linewidth=0.25) bm.draws

我正试图将添加了颜色条的四面板图保存为.eps图形,但是,仅保存面板图,从而将颜色条从应位于图底部的添加轴上切断。有人知道如何确保色条被保存吗?代码如下,谢谢

fig = plt.figure(figsize=(4.5,3.75))

ax = plt.subplot(221) 
lats,lons = wrf.latlon_coords(totrain)
bm = wrf.get_basemap(rainc)
bm.drawcoastlines(linewidth=0.25)
bm.drawstates(linewidth=0.25)
bm.drawcountries(linewidth=0.25)
bm.drawparallels(np.arange(0.,90.,5.),color='gray',dashes=[1,3],labels=[1,0,0,0])
bm.drawmeridians(np.arange(0.,360.,15.),color='gray',dashes=[1,3],labels=[0,0,0,1])
x,y = bm(wrf.to_np(lons),wrf.to_np(lats))  
cx1 = bm.contourf(x,y,wrf.to_np(all_rain[0]),np.arange(0,np.max(all_rain)+15,15),cmap=cmap)
text_box = AnchoredText('a)',frameon=False,loc=2,pad=0.1,prop=dict(fontweight='bold',fontsize=10.))
plt.setp(text_box.patch,facecolor='white',alpha=0.5)
ax.add_artist(text_box)

ax2 = plt.subplot(222)
lats,lons = wrf.latlon_coords(totrain)
bm = wrf.get_basemap(rainc)
bm.drawcoastlines(linewidth=0.25)
bm.drawstates(linewidth=0.25)
bm.drawcountries(linewidth=0.25)
bm.drawparallels(np.arange(0.,90.,5.),color='gray',dashes=[1,3],labels=[1,0,0,0])
bm.drawmeridians(np.arange(0.,360.,15.),color='gray',dashes=[1,3],labels=[0,0,0,1])
x,y = bm(wrf.to_np(lons),wrf.to_np(lats))
cx2=bm.contourf(x,y,wrf.to_np(all_rain[1]),np.arange(0,np.max(all_rain)+15,15),cmap=cmap)
text_box = AnchoredText('b)',frameon=False,loc=2,pad=0.1,prop=dict(fontweight='bold',fontsize=10.))
plt.setp(text_box.patch,facecolor='white',alpha=0.5)
ax2.add_artist(text_box)

ax3 = plt.subplot(223)
lats,lons = wrf.latlon_coords(totrain)
bm = wrf.get_basemap(rainc)
bm.drawcoastlines(linewidth=0.25)
bm.drawstates(linewidth=0.25)
bm.drawcountries(linewidth=0.25)
bm.drawparallels(np.arange(0.,90.,5.),color='gray',dashes=[1,3],labels=[1,0,0,0])
bm.drawmeridians(np.arange(0.,360.,15.),color='gray',dashes=[1,3],labels=[0,0,0,1])
x,y = bm(wrf.to_np(lons),wrf.to_np(lats))  
cx3=bm.contourf(x,y,wrf.to_np(all_rain[2]),np.arange(0,np.max(all_rain)+15,15),cmap=cmap)
text_box = AnchoredText('c)',frameon=False,loc=2,pad=0.1,prop=dict(fontweight='bold',fontsize=10.))
plt.setp(text_box.patch,facecolor='white',alpha=0.5)
ax3.add_artist(text_box)

ax4 = plt.subplot(224)  
lats,lons = wrf.latlon_coords(totrain)
bm = wrf.get_basemap(rainc)
bm.drawcoastlines(linewidth=0.25)
bm.drawstates(linewidth=0.25)
bm.drawcountries(linewidth=0.25)
bm.drawparallels(np.arange(0.,90.,5.),color='gray',dashes=[1,3],labels=[1,0,0,0])
bm.drawmeridians(np.arange(0.,360.,15.),color='gray',dashes=[1,3],labels=[0,0,0,1])
x,y = bm(wrf.to_np(lons),wrf.to_np(lats))  
cx4=bm.contourf(x,y,wrf.to_np(all_rain[3]),np.arange(0,np.max(all_rain)+15,15),cmap=cmap)
text_box = AnchoredText('d)',frameon=False,loc=2,pad=0.1,prop=dict(fontweight='bold',fontsize=10.))
plt.setp(text_box.patch,facecolor='white',alpha=0.5)
ax4.add_artist(text_box)

fig.tight_layout()

cbar_ax = fig.add_axes([0.2,-0.075,0.6,0.05])
fig.colorbar(cx4,cax=cbar_ax,shrink=0.7,orientation='horizontal',label='Accumulated Precipitation (mm)')

fig.savefig('/strm3/vecellio/Figures/Figure4Final.eps',dpi=300.)

如坐标
-0.075
所示,颜色条位于地物边界之外。您可能可以更改savefig边界框,
fig.savefig(…,bbox_inches=“tight”)
,但一般来说,我建议您将所有内容都放在图中。@ImportanceOfBeingErnest添加bbox_inches有效,谢谢!但是,如果你不介意的话,我想问你关于add_轴坐标的问题。在仍然使用正坐标的情况下,如何确保颜色栏位于绘图下方?可能使用
fig.subplots\u adjust(bottom=0.25)
或允许颜色栏采用严格正数字坐标的任何数字。