Адаптация примера на странице документации Geo Pandas Mapping Tools Я бы хотел добавить маркер для городов к легенде, созданной хороплетом.
Geo pandas сюжет без городов в легенде
Простое добавление 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. Есть ли способ добиться этого?