1

我正在尝试制作交互式条形图,但无法弄清楚如何标记框。给定一个直方图,我想要它,所以当光标在条形上方时,会显示高度或我想要的任何标签。以下代码显示图表但没有标签:

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

有什么建议么?

4

1 回答 1

2

对我来说,您的代码为条形图中的第一个条创建了一个工具提示标签。您可以使用循环来获取其余部分:

for i, box in enumerate(boxes.get_children()):
    tooltip = mpld3.plugins.LineLabelTooltip(box, label=bins[i])
    mpld3.plugins.connect(fig, tooltip)

这是一个在上下文中显示结果的笔记本

这是以前要求的功能,如果能更直接地提供,例如mpld3.plugins.BarTooltip; 欢迎补丁!

于 2015-12-30T00:36:54.883 回答