Geopandas为地块上的点添加标签

时间:2018-05-10 10:16:06

标签: python-3.x geopandas

我有一个地理数据框'all_locations',其中包含几何列和一个包含该点名称的列。在地图上绘制点的工作原理很好,但我想用位置名称注释点。

['location'] ['geometry']
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'])

添加坐标列但会出现此错误:''Point'对象没有属性'point'

1 个答案:

答案 0 :(得分:2)

使用geopandas中包含的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")