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

时间:2015-07-16 21:08:23

标签: python pygal

使用下面的代码,我可以生成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')

这会生成一个如下所示的饼图(如果我将鼠标悬停在"值2和#34;):

PyGal Default Pie Chart

我遇到的问题是小切片。我很难看到我在盘旋的东西。在上面的示例中,对于值5到8,这尤其明显,但即使在值4上,也很难分辨哪一个正在上面徘徊。有没有办法在工具提示中包含标签?

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

1 个答案:

答案 0 :(得分:1)

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

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