Можно ли добавить точечные маркеры в легенду о Geo Pandas? - PullRequest
0 голосов
/ 28 марта 2020

Адаптация примера на странице документации Geo Pandas Mapping Tools Я бы хотел добавить маркер для городов к легенде, созданной хороплетом.

Geo pandas сюжет без городов в легенде

image

Простое добавление legend=True к слою городов не имеет никакого эффекта - ни в сочетании со слоем многоугольника, ни на его своя. См. Код ниже:

import geopandas
import matplotlib.pyplot as plt
world = geopandas.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))

# Plot
fig,ax = plt.subplots(figsize=(16,16))
world.plot(column='continent', ax=ax, categorical=True, alpha=0.5, legend=True)
cities.plot(ax=ax, marker='*', color='green', markersize=18, legend=True)

Насколько я понимаю, Geo Pandas не создает простых легенд для точечных слоев. Нанесение на карту городов с использованием categorical=True и отдельной категории (аналогично ответу на Добавление легенды к гео pandas) создает легенду, но не отображает правильный маркер и перезаписывает легенду хороплета.

cities['type'] = 'city'
cities.plot(ax=ax, marker='*', column='type', markersize=18, 
            categorical=True, legend=True)

Я пытался добавить ручку и метку к легенде, как и в ответе на этот вопрос 'Добавить элемент в существующую легенду Matplotlib' , но .get_legend_handles_labels(), похоже, не работает таким же образом для сюжета Geo Pandas. Есть ли способ добиться этого?

...