【问题标题】:Adding text annotations to a map向地图添加文本注释
【发布时间】:2019-01-13 12:38:53
【问题描述】:

我正在使用 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()

这是生成的地图:

我如何在 df 中与地图中的蓝点一起显示列 names 的名称??

提前非常感谢

【问题讨论】:

    标签: python pandas python-2.7 google-maps dataframe


    【解决方案1】:

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

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

    注意:我使用了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()
    

    结果

    【讨论】:

    • 非常感谢您的解释和帮助!!我花了一些时间才发现只有当您将鼠标移过这些点时,该点的名称才会出现在交互式图中。这不完全是我想要的,我想做的是在该点上方或下方显示一个静态注释。但如果没有这样做的可能性,我想我将不得不使用这个。
    • 您正在寻找的是地图上点的静态标签。这似乎是一个很好的功能,我将关注官方geoplotlib project on Github 并了解该领域是否正在开展任何工作。如果我发现了什么,我稍后会更新答案。或者如果我能获得此功能的有效解决方案,请提交 PR。目前,API 只为geoplotlib.dot() 函数提供了f_tooltip arg,这在一定程度上满足了您的要求。工具提示是当您将鼠标悬停在对象上时出现的标签信息。
    • 好的@amanb,非常感谢您的时间和帮助,您在这方面有点帮助。如果您找到更符合我需要的东西,如果您更新答案,我将非常感谢您。因为这是我第一次使用这个包,所以我不知道工具提示到底是什么,我从你那里学到了另一件事 :) 再次感谢!!
    猜你喜欢
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 2013-05-21
    • 2011-04-25
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多