Отображать одну метку на пузырь во всплывающих подсказках на графике рассеяния (Matplotlib) - PullRequest
0 голосов
/ 05 июня 2018

У меня есть анимированный график разброса, который показывает ВВП на душу населения x ожидаемую продолжительность жизни на страну в разные годы.Я хочу добавить всплывающую подсказку, которая появляется, когда кто-то наводит указатель мыши на пузырь, и я хочу, чтобы она отображала название страны, которой эквивалентен пузырь.

Я пытался использовать mplcursors для этого, но не мог понять, как отобразить название страны, так как оно в каждом пузыре разное.

Вот график:

ax.scatter(y = data['lifeExpec'],
    x = data['gdp'],
    s = data['population']/40000,
    c = data['region'].astype('category').cat.codes,
    cmap = cm.viridis,
    edgecolors = 'none',
    alpha = 0.5)

 c1 = mplcursors.cursor(ax, hover=True)
    @c1.connect("add")
    def _(sel):
        sel.annotation.set_text(<????>)
        sel.annotation.set(position=(-15,15), 
                           fontsize=8, 
                           ha='center', 
                           va='center')

Вот пример моего фрейма данных:

country, gdp, lifeExpec, year, population, region
USA, 20000, 70, 2005, 100000, America
USA, 21000, 72, 2007, 104000, America
Canada, 20500, 71, 2005, 50000, America
Canada, 23000, 74, 2007, 53000, America

1 Ответ

0 голосов
/ 07 июня 2018

В разделе Customization документации mplcursors говорится, что я могу просто использовать target.index для указания индекса выбранной точки.Вот окончательный код:

c1 = mplcursors.cursor(ax, hover=True)
    @c1.connect("add")
    def _(sel):
        sel.annotation.set_text(data['country'].iat[sel.target.index])
        sel.annotation.set(position=(-15,15), 
                           fontsize=8, 
                           ha='center', 
                           va='center')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...