如何 return 来自 matplotlib 的图例数据

How to return legend data from matplotlib

我使用 geopandas 从 shapefile 创建了一个数据框,然后使用 gdf.plot 函数绘制。 我希望按以下格式或类似格式将颜色值分配给数据类别:

{'1':'black(or color hex code)', 
'2':'color/#hexcode'....,
'7':'color/#hexcode'}

该图是使用以下代码创建的:

plot = geodataframe.plot(
               column='map_c',
               categorical=True,
               legend=True,
               ax=ax,
               cmap='Accent_r')

是否可以从情节中获取此元数据?

这是我使用 pylab 发现的解决方法

from pylab import cm
from matplotlib.colors import rgb2hex

cmap = cm.get_cmap('Accent_r', 7) #7 categories I had
plot = geodataframe.plot(
               column='map_c',
               categorical=True,
               legend=True,
               ax=ax,
               cmap= cmap)
hexes = [rgb2hex(cmap(i)) for i in range(cmap.N)]

参考这个回答: