如何从 csv 文件命名 matplotlib/geopandas 地图中的每个城市?

How to name each city in a matplotlib/geopandas map from csv file?

我有一个包含塞内加尔城市的 csv 文件,有一个城市列,我已经使用 long 和 lat 列来绘制点,但现在我希望每个点旁边都有城市名称,也许以后会有更多信息。我怎样才能用 matplotlib 做到这一点?谢谢。

import geopandas as gpd
import matplotlib.pyplot as plt
import os
import pandas as pd

file = os.path.join("senegal_administrative","senegal_administrative.shp")

cities_file = os.path.join("senegal_administrative","sn.csv")

cities = pd.read_csv(cities_file)
senegal = gpd.read_file(file)

## THE MAP IS PLOTED HERE
axis = senegal.plot(color="lightblue",edgecolor = "black",figsize = (20,20))

def_geo = gpd.GeoDataFrame(cities,geometry = gpd.points_from_xy(cities.lng,cities.lat))
print(def_geo)

## I PLOT THE POINTS HERE
def_geo.plot(ax = axis,color = "black")

plt.show()

这里有一个保管箱 link 如果您需要这些文件,我非常感谢:https://www.dropbox.com/sh/dr54pbc9a5zc5ke/AADMxnYHe4maAnwKArCsh1m8a?dl=0

要在地图上添加注释,您可以使用.annotate() 功能。 以下是代码的相关部分:

axis = senegal.plot(color="lightblue",edgecolor = "black",figsize = (12,12))
for idx,dat in cities.iterrows():
    #print(dat.city, dat.lng, dat.lat)
    axis.scatter(dat.lng, dat.lat, s=10, color='red')
    axis.annotate(dat.city, (dat.lng, dat.lat))

剧情类似这样: