我正在使用geoplotlib在地图上siplay点,我想在地图上显示的点上添加名称,例如文本注释。但是无法弄清楚在谷歌搜索了一段时间并在github文档站点中查找后如何处理。这是创建地图的代码:

import pandas as pd

# Dataframe containing the data to plot

locs = pd.DataFrame({'name': ['a','b'],'lat': [-22.951916, -43.210487], 'lon': [-13.163141, -72.544962]})

# import eoplotlib.

import geoplotlib
%matplotlib inline

# Load the data

data = locs[['lat', 'lon']]

# Pass the data to geoplotlib.plot

geoplotlib.dot(data, color='b', point_size= 10)

# Display the map.

geoplotlib.inline()


这是生成的地图:

python - 向 map 添加文本注释-LMLPHP
如何在df中在地图中的蓝点旁边显示names列的名称?

提前谢谢

最佳答案

geoplotlib API reference for the geoplotlib.dot()函数提供一个参数f_tooltip,该参数接受一个函数来为一个点生成工具提示字符串。

在您的代码中,不需要单独的data数据框即可绘制地图并获得带注释的工具提示。 locs数据框已经具有name列,该列将提供工具提示的字符串,并且可以直接使用。在后台,数据帧被转换为键值对字典。在我们的例子中,我们只需要一个简单的lambda函数即可从字典中为相应的namelat检索lon键。

注意:由于geoplotlib.show()地块目前不适合我,因此我使用了inline

import pandas as pd

# Dataframe containing the data to plot
locs = pd.DataFrame({'name': ['a','b'],'lat': [-22.951916, -43.210487], 'lon': [-13.163141, -72.544962]})

#import geoplotlib.
import geoplotlib
# %matplotlib inline

#function to create a dot density map with annotated tooltip
geoplotlib.dot(locs, color='b', point_size= 10,f_tooltip=lambda r:r['name'])

# Display the map.
geoplotlib.show()


结果:

python - 向 map 添加文本注释-LMLPHP

09-26 01:33