我有一个动画散点图,显示了这些年来每个国家的人均GDP 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
答案 0 :(得分:1)
mplcursors文档的Customization部分指出我可以简单地使用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')