使用 PyGal,如何在悬停时在饼图本身上嵌入标签?

Using PyGal, how can I embed a label on the pie chart itself on hover?

使用下面的代码,我可以生成一个 pie chart。当我将鼠标悬停在馅饼的一片上时,它会显示该片所占的百分比。

import pygal
results = [
    (15232,'Value 1'),
    (947,'Value 2'),
    (246,'Value 3'),
    (117,'Value 4'),
    (50,'Value 5'),
    (50,'Value 6'),
    (50,'Value 7'),
    (50,'Value 8'),
]

pie_chart = pygal.Pie()
pie_chart.title = 'Title!'
for r in results:
    pie_chart.add(r[1], r[0])
pie_chart.value_formatter = lambda x: "%.15f" % x
pie_chart.render_to_file('piechart.svg')

这会生成如下所示的饼图(如果我将鼠标悬停在 "Value 2" 上):

我的问题是小切片。很难看出我正在盘旋什么。在上面的示例中,这对于值 5 到 8 尤其明显,但即使在值 4 上,也很难判断哪个悬停在上方。有没有办法在工具提示中也包含标签?

我发现最接近的是 value_formater,但这在饼图中似乎被忽略了(如上例所示,工具提示中只有 2 位小数,尽管 pie_chart.value_formatter = lambda x: "%.15f" % x代码行)。

解决这个问题的方法是利用 label metadata 信息。这需要将字典而不是单个值作为第二个参数传递给 for 循环中的 .add()

for r in results:
    pie_chart.add(r[1], [{'value': r[0], 'label': r[1]}])