Python matplotlib基映射子批次重叠

Python matplotlib基映射子批次重叠,python,matplotlib,subplot,matplotlib-basemap,Python,Matplotlib,Subplot,Matplotlib Basemap,我试图使用basemap生成一些地理地图的子地块。以下是我正在编写的代码部分: import matplotlib.pyplot as plt #---Some code to read in the data # ... #-----Get a A4 sized landscape figure fig=plt.figure(figsize=(11.69,8.27), dpi=100) #----2*3 Subplots------------- for ii in range(6):

我试图使用basemap生成一些地理地图的子地块。以下是我正在编写的代码部分:

import matplotlib.pyplot as plt
#---Some code to read in the data
# ...

#-----Get a A4 sized landscape figure
fig=plt.figure(figsize=(11.69,8.27), dpi=100)

#----2*3 Subplots-------------
for ii in range(6):
    ax=fig.add_subplot(2,3,ii+1)

    #---Basemap contourf of data
    baseIsofill(var[ii],ax,'local')
    ax.set_title('(a)',loc='left')


#plt.tight_layout()
plt.tight_layout(pad=2.0,h_pad=6.5,w_pad=4.5)
plt.show() 
问题在于子地块布局:

  • 如果没有
    tight_layout()
    ,子图中的绘图和文本不会重叠,但它们都太小,无法充分利用图形空间(图1)
  • 使用
    plt.tight_layout()
    ,子地块占据了大部分可用地物空间,但纬度标签开始重叠(图2)
  • plt.紧密布局(pad=2.0,h\u pad=6.5,w\u pad=4.5)
    给出了所需的结果(图3)。但是,当使用不同的子地块布局时,需要更改参数(例如,景观A4上的3*2,图4,再次太小)
布局紧凑(),太小“> 紧密布局(),重叠“> 紧凑布局(pad=2.0,h\U pad=6.5,w\U pad=4.5),所需结果“> 布局紧凑(pad=2.0,h\U pad=6.5,w\U pad=4.5)如图3所示,又太小了“>

BaseIsofill()
函数中,我缩小了纬度标签的字体大小,以避免重叠。缩小是子地块布局的一个功能(fontsize=7./max(nrows,ncolns)+5)。除此之外,函数内部没有其他与大小相关的更改

如果我花时间调整填充参数,我总能得到一个好的结果,但这会涉及一些尝试和错误测试,而且不可靠。毕竟,快速而可靠地修复子地块布局是
tight\u layout
的意义所在。所以我想知道是否有人想出了解决方案

注:我的matplotlib版本是1.3.1。底图版本是1.0.7