Добавление текстовых аннотаций на карту - PullRequest
0 голосов
/ 13 января 2019

Я использую геоплотолиб, чтобы воспроизводить точки на карте, и я хотел бы добавить имена к точкам, отображаемым на моей карте, например текстовые аннотации. Но не могу понять, как после того, как поиграем в нее и поищем на сайте документации 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()

Это сгенерированная карта:

enter image description here Как я могу отобразить названия столбца names в df рядом с синими точками на карте ??

Большое спасибо заранее

1 Ответ

0 голосов
/ 14 января 2019

Ссылка API геоплотлиба для функции геоплотлиба.dot () предоставляет аргумент f_tooltip, который принимает функцию для генерации строки всплывающей подсказки для точки.

В вашем коде вам не нужен отдельный data фрейм данных для построения карты и получения аннотированной всплывающей подсказки. В фрейме данных locs уже есть столбец name, который содержит строку для всплывающей подсказки и может использоваться напрямую. За кулисами кадр данных преобразуется в словарь пар ключ-значение. В нашем случае нам просто нужна простая функция lambda для извлечения ключа name из словаря для соответствующих lat и 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()

Результат :

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...