重叠图例:如何在地图旁边放置geopandas图例?

问题描述

我正在使用geopandascontextily从OpenStreetMap绘制建筑数据(多边形)。问题是,图例与地图重叠。 是否可以将图例放在地图旁边?还是在地图外部?或在没有图例的情况下绘制地图,但是将图例与地图分开导出?我不希望它重叠。

希望该图片对您有所帮助。
这是生成地图的代码(我知道代码有些不同,但是生成的地图相同):

from matplotlib import pyplot as plt
import geopandas as gpd
import contextily as ctx
%matplotlib inline

buildings = gpd.read_file("buildings.shp")
fig,ax = plt.subplots(1,1,figsize=(9,9))
buildings.to_crs(epsg=3857).plot(column='building',ax=ax,cmap="Paired",legend=True)
ctx.add_basemap(ax,url=ctx.providers.Esri.WorldTopoMap)
ax.axis('off')
plt.show()

IMAGE OF The problem

解决方法

您需要使用 plt.legend(),并使用 bbox_to_anchor loc

查看此文档:https://matplotlib.org/3.1.0/tutorials/intermediate/legend_guide.html

和本例:https://www.delftstack.com/howto/matplotlib/how-to-place-legend-outside-of-the-plot-in-matplotlib/