我正在尝试制作交互式条形图,但无法弄清楚如何标记这些框。给定一个直方图我想拥有它,所以当光标在条上时,显示高度或我想要的任何标签。以下代码显示图表但没有标签:
hist, bins = np.histogram(df.PER, bins=15)
width = 1 * (bins[1] - bins[0])
center = (bins[:-1] + bins[1:]) / 2
fig, ax = plt.subplots()
boxes = ax.bar(center, hist, align='center', width=width,alpha=0.7,facecolor="red",edgecolor='w')
tooltip = mpld3.plugins.PointHTMLTooltip(boxes[0],labels=bins.tolist(),
voffset=10, hoffset=10)
mpld3.plugins.connect(fig, tooltip)
mpld3.display()
其中df.PER是来自此处的数据:
0 35.47
1 31.27
2 30.64
3 26.92
4 26.71
5 26.49
6 26.45
7 26.21
8 26.17
9 25.85
10 25.48
11 25.34
12 24.64
13 24.32
14 23.46
15 23.42
16 23.37
17 22.76
18 22.45
19 22.45
20 22.43
21 22.10
22 21.99
23 21.82
24 21.62
25 21.44
26 21.31
27 21.26
28 21.26
29 20.87
有什么建议吗?
答案 0 :(得分:1)
对我来说,您的代码会为条形图中的第一个条形创建工具提示标签。您可以使用循环来完成剩下的工作:
for i, box in enumerate(boxes.get_children()):
tooltip = mpld3.plugins.LineLabelTooltip(box, label=bins[i])
mpld3.plugins.connect(fig, tooltip)
这是a notebook showing the results in context。
这是has been requested previously, and would be nice to offer more directly的功能,例如作为mpld3.plugins.BarTooltip
;补丁欢迎!