我想在一张图中绘制5张地图。我希望它们像
一样布局1 2 3
4 5
要做到这一点,我试着按照这里给出的答案: Position 5 subplots in Matplotlib
这给了我正确的布局,但是在子图之间留下了大量的空白空间。
#S,W,N,E Bounds
lonMin = 119
lonMax = 124
latMin = 12
latMax = 19
m = Basemap(llcrnrlon=lonMin,llcrnrlat=latMin,urcrnrlon=lonMax,urcrnrlat=latMax, projection = 'cea', resolution = 'i')
fig = plt.figure()
axes = [plt.subplot2grid(shape=(2,6), loc=(0,0), colspan=2),
plt.subplot2grid((2,6), (0,2), colspan=2),
plt.subplot2grid((2,6), (0,4), colspan=2),
plt.subplot2grid((2,6), (1,1), colspan=2),
plt.subplot2grid((2,6), (1,3), colspan=2)]
for i in range(5):
m.ax = axes[i]
m.drawcoastlines()
fig.suptitle('Title', fontsize = 20, fontweight = 'bold')
如何减少子图之间的间距?
编辑:
这个问题似乎与将Basemaps放入情节有关。如果我注释掉m.drawcoastlines()
调用,则轴看起来像这样,这很好:
答案 0 :(得分:0)
首先,您可以尝试调用plt.tight_layout()
来调整子图之间的间距,以最大限度地减少重叠。
另一种方法是使用subplots_adjust
手动设置所有空格,如
fig.subplots_adjust(hspace=.1) # height spaces
fig.subplots_adjust(wspace=.1) # width spaces
这些功能会影响所有子图。如果需要更多控制,请使用GridSpec。