#python #matplotlib #plot #geopandas #choropleth
Вопрос:
Я пытаюсь построить карту choropleth, на которой каждый регион имеет свое название на полигонах. Когда я удаляю линию проекции, она работает хорошо, но карта растягивается горизонтально. Когда я использую проекцию=gcrs.AlbersEqualArea() Я избавляюсь от растяжения, но на этот раз все метки перекрываются по центру. Кто-нибудь знает, что может вызвать эту проблему? Как я могу сделать так, чтобы метки отображались на полигонах с не растянутой проекцией?
ax = gplt.choropleth(df=map_data,
projection=gcrs.AlbersEqualArea(),
hue='population',
figsize=(16,8),
legend=True,
cmap='BuGn',
scheme=scheme_2,
legend_kwargs={'loc': 'lower right'},
edgecolor='black', linewidth=0.5,
)
map_data.apply(lambda x: ax.annotate(s=x.population_abb, xy=x.geometry.centroid.coords[0],fontsize='x-small',fontstretch='ultra-expanded', ha='center',bbox={'facecolor': 'white', 'alpha':0.3, 'pad': 2, 'edgecolor':'none'}),axis=1,);
Карта:
Комментарии:
1. Я подозреваю, что координаты
x.geometry.centroid.coords[0]
указаны вlong/lat
градусах. Если я прав, вам нужно преобразовать их в координаты проекции (AlbersEqualArea), чтобы получить их правильно.