如何解决matplotlib geopandas子图大小不相等
我正在绘制四个子图(如下图),这些图显示了一些地图。当我为每个子图添加一个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',1])
Variable4.plot(column='Percent_4',1])
sm = plt.cm.ScalarMappable(cmap='viridis',norm=plt.Normalize(vmin=-100,vmax=100))
p1 = f.colorbar(sm,orientation='horizontal',0],pad=0.15)
p2 = f.colorbar(sm,pad=0.15)
p3 = f.colorbar(sm,1],pad=0.15)
p4 = f.colorbar(sm,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()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。