繁体   English   中英

matplotlib geopandas 子图大小不等

[英]matplotlib geopandas subplots not equal size

我正在制作一个显示一些地图的四个子图(下图)。 当我为每个子图添加一个 colobar 时,最终的子图(右下角)与其他子图的大小不同。 是什么控制了这个,matplotlib 有没有办法自动将它们缩放到相同的大小?

shp = "Coutries.shp"

map_df = gpd.read_file(shp)

Data = "CountryData.csv"
columns = ['Country', 'Percent_1', 'Percent_2', 'Percent_3', 'Percent_4']
df = pd.read_csv(Data,usecols=columns)

# Merge data and remove NANs
merged = map_df.set_index('NAME_LONG').join(df.set_index('Country'))
merged = merged.fillna(-9999)

Variable1 = merged[merged.GMWPercent!=-9999]
Variable2 = merged[merged.GiriPercent!=-9999]
Variable3 = merged[merged.HamiltonPercent!=-9999]
Variable4 = merged[merged.SpaldingPercent!=-9999]


f, axes = plt.subplots(figsize=(10, 5), ncols=2, nrows=2)

Variable1.plot(column='Percent_1', ax=axes[0,0])
Variable2.plot(column='Percent_2', ax=axes[1,0])
Variable3.plot(column='Percent_3', ax=axes[0,1])
Variable4.plot(column='Percent_4', ax=axes[1,1])


sm = plt.cm.ScalarMappable(cmap='viridis', norm=plt.Normalize(vmin=-100, vmax=100))
p1 = f.colorbar(sm, orientation='horizontal', ax=axes[0,0], pad=0.15)
p2 = f.colorbar(sm, orientation='horizontal', ax=axes[1,0], pad=0.15)
p3 = f.colorbar(sm, orientation='horizontal', ax=axes[0,1], pad=0.15)
p4 = f.colorbar(sm, orientation='horizontal', ax=axes[1,1], pad=0.15)

p1.ax.tick_params(labelsize=7)
p2.ax.tick_params(labelsize=7)
p3.ax.tick_params(labelsize=7)
p4.ax.tick_params(labelsize=7)

plt.tight_layout()

plt.show()

在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM