我从geopandas的固有数据集创建了世界Map,如下所示:
world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
我已经绘制了世界Map,突出显示了独特的大陆使用
world.plot("continent", legend = True)
传说也出现在情节中。如下所示:
我会自动为每个大陆获得独特的颜色。然而,我想自己定义每个大陆的颜色,并在传说中使用它们。为了定义每个大洲的唯一颜色,我创建了一个字典color_dict
,如下所示:
{'Oceania': 'yellow',
'Africa': 'brown',
'North America': 'maroon',
'Asia': 'blue',
'South America': 'green',
'Europe': 'red',
'Seven seas (open ocean)': 'skyblue',
'Antarctica': 'white'}
然后我将它作为一个新列附加到world
geopandas dataframe中,并再次创建了图。
world["Colors"] = world["continent"].map(color_dict)
world.plot("continent",
color = world["Colors"],
legend = True)
我得到了每个大陆想要的颜色。然而,现在我没有得到大陆的名字和颜色的传说。当我自己定义颜色的时候,我怎么能把故事情节中的传奇人物带进来呢?
2条答案
按热度按时间dtcbnfnu1#
您可能会发现,如果您使用笛卡尔将geopandas几何转换为多边形面片,然后使用matplotlib生成图,则可以获得更好的结果和更好的控制。
从geopandas绘制可能会很挑剔。可能需要一些尝试和错误才能得到你想要东西。
确保您的模块中有这些包
PolygonPatch允许您为每个几何体指定边颜色和面颜色。
使用pyplot,您应该能够创建您想要的图例。
形成你的大陆地理数据框架(gdf)。对于你的gdf中的每个大陆,用你想要的面颜色形成一个多边形面片。然后将面片添加到pyplot图形中。使用pyplot,您应该能够更容易地指定图例并操作它。
下面是一些关于多边形面片的文档,以及绘制它们的示例(尽管没有使用您正在寻找的确切图例格式):https://pypi.org/project/descartes/https://geoffboeing.com/2014/09/visualizing-summer-travels-part-6-projecting-spatial-data-python/
igetnqfo2#
基于this,这是潜在的解决方案:
输出: