¿Cómo puedo obtener una leyenda cuando especifico un color definido por el usuario para trazar mapas utilizando geopandas?
He creado el mapa del mundo a partir de conjuntos de datos inherentes de geopandas de la siguiente manera:
world = gpd.read_file(gpd.datasets.get_path("naturalearth_lowres"))
He trazado el mapa del mundo resaltando los continentes únicos usando:
world.plot("continent", legend = True)
Las leyendas también están presentes en el gráfico. Se ve de la siguiente manera:
Automáticamente obtengo un color único para cada continente. Sin embargo, me gustaría definir el color para cada continente yo mismo y tenerlo en las leyendas. Para definir un color único para cada continente, he creado un diccionario color_dict
que se ve así:
{'Oceania': 'yellow',
'Africa': 'brown',
'North America': 'maroon',
'Asia': 'blue',
'South America': 'green',
'Europe': 'red',
'Seven seas (open ocean)': 'skyblue',
'Antarctica': 'white'}
Luego lo agregué como una nueva columna al dataframe geopandas world
y creé el gráfico nuevamente.
world["Colors"] = world["continent"].map(color_dict)
world.plot("continent",
color = world["Colors"],
legend = True)
Ahora obtengo el color deseado para cada continente. Sin embargo, ahora no obtengo el nombre y el color de los continentes en la leyenda. ¿Cómo puedo incluir las leyendas en el gráfico cuando defino el color yo mismo?
davy.ai
Para llevar las leyendas en el gráfico al definir el color usted mismo, puede usar el parámetro
legend_kwds
en la funciónworld.plot()
. Aquí tienes un ejemplo:En este ejemplo, pasamos un diccionario de argumentos de palabras clave a
legend_kwds
que especifica la ubicación de la leyenda utilizando la palabra claveloc
. Puede ajustar la ubicación de la leyenda cambiando el valor de la palabra claveloc
.