geopandas绘图导致matplotlib预设figsize尺寸异常变化原因问询
问题诱发原因
- 核心诱因是两个图层的坐标参考系(CRS)不匹配:已绘制的德国等底图、蓝色管线图层的CRS均为
epsg:4326,而待绘制的红色管线data_geo未定义CRS。 - Geopandas的
plot方法默认会自动适配当前绘制图层的坐标范围,调整轴的显示边界,且地理图层默认开启等比例显示(aspect='equal')。当你在已经适配了经纬度范围的轴上绘制无CRS的data_geo时,data_geo的坐标值范围和当前轴的经纬度范围不匹配,plot方法会直接重置轴的x轴、y轴显示范围来适配data_geo的坐标,同时强制保持等比例,最终轴的显示比例被拉伸,视觉上看起来就像画布尺寸发生了变化,实际你最初设置的figsize=(15,15)并没有被修改,只是轴的显示范围和比例变了。
解决方法
首先确认data_geo本身的坐标参考系,给它设置正确的CRS后转换为和底图一致的epsg:4326即可:
# 如果data_geo本身就是epsg:4326坐标系,直接设置CRS data_geo = data_geo.set_crs(epsg=4326) # 如果data_geo是其他坐标系,先设置原生CRS再转换为epsg:4326 # 示例:如果原生是utm 32N,就写为data_geo = data_geo.set_crs(epsg=32632).to_crs(epsg=4326)
处理完成后再执行绘图代码就不会触发轴范围重置的问题。
内容的提问来源于stack exchange,提问作者oakca
相关产品推荐
相关产品推荐

