Geopandas与Matplotlib绘制多图层多边形时如何维持初始绘图范围?
解决GeoPandas绘图时保留初始图层范围的问题
有两种简单方法可以解决这个问题:
方法一:利用reset_extent参数直接禁用范围重置
GeoPandas的plot方法默认会自动调整坐标轴范围以适配当前绘制的图层,只需要在绘制第二个图层时设置reset_extent=False,就能保持初始图层的视图范围:
import geopandas as gpd myPolygon = gpd.read_file("/pathToFile/myPolygon.geojson") ax = myPolygon.plot(figsize=(5, 5), alpha=0.5, edgecolor='k', facecolor='none') usaStates = gpd.read_file("/pathToFile/states.geojson") # 禁用坐标轴范围重置,保持初始视图 usaStates.plot(ax=ax, edgecolor='k', facecolor='none', reset_extent=False)
方法二:手动保存并恢复初始范围
先获取第一个图层的边界范围,绘制完第二个图层后手动把坐标轴范围改回去:
import geopandas as gpd myPolygon = gpd.read_file("/pathToFile/myPolygon.geojson") ax = myPolygon.plot(figsize=(5, 5), alpha=0.5, edgecolor='k', facecolor='none') # 保存第一个图层的四至范围 x_min, y_min, x_max, y_max = myPolygon.total_bounds usaStates = gpd.read_file("/pathToFile/states.geojson") usaStates.plot(ax=ax, edgecolor='k', facecolor='none') # 重置坐标轴到初始图层的范围 ax.set_xlim(x_min, x_max) ax.set_ylim(y_min, y_max)
两种方法都能实现需求,第一种更简洁,推荐优先使用。
内容的提问来源于stack exchange,提问作者jotamon
相关产品推荐
相关产品推荐

