Геопанды добавляют метки к точкам на графике

У меня есть геоданные all_locations со столбцом геометрии и столбцом с именем точки. Нанесение точек на карту работает нормально, но я хочу аннотировать точки с помощью названия местоположения.


['местоположение'] ['геометрия']
BUITHVN8 POINT ()

(Фактический фреймворк, конечно, намного больше)

Я пробовал это (и другие вещи):

    all_locations['coords'] = all_locations['geometry'].apply(lambda x: x.point.coords[:])
all_locations['coords'] = [coords[0] for coords in all_locations['coords']]

all_locations.plot(ax=ax)
for idx, row in all_locations.iterrows():
    plt.annotate(s=row['locatie'], xy=row['geometry'])

При добавлении столбца координат возникает такая ошибка: объект «Точка» не имеет атрибута «точка»


person J-man    schedule 10.05.2018    source источник


Ответы (1)


Используя пример набора данных cities, включенный в геопанды, вы можете сделать это следующим образом:

import geopandas
cities = geopandas.read_file(geopandas.datasets.get_path('naturalearth_cities'))

ax = cities.plot()

for x, y, label in zip(cities.geometry.x, cities.geometry.y, cities.name):
    ax.annotate(label, xy=(x, y), xytext=(3, 3), textcoords="offset points")
person joris    schedule 10.05.2018
comment
Просто любопытно об этом подходе к циклу vs apply. points_clip.apply(lambda x: ax.annotate (s = x ['name'], xy = x.geometry.coords [0], xytext = (3, 3), textcoords = offset points), axis = 1); `какие мысли? apply действительно работает хорошо. - person Leah Wasser; 05.06.2018