使用下面的代码,我可以生成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;):
我遇到的问题是小切片。我很难看到我在盘旋的东西。在上面的示例中,对于值5到8,这尤其明显,但即使在值4上,也很难分辨哪一个正在上面徘徊。有没有办法在工具提示中包含标签?
我找到的最接近的是value_formater
,但这似乎在饼图中被忽略(正如上面的例子所示,工具提示中只有2个小数位,尽管pie_chart.value_formatter = lambda x: "%.15f" % x
代码行)。
答案 0 :(得分:1)
解决方法是使用label metadata信息。这要求将字典而不是单个值作为第二个参数传递给.add()
循环中的for
。
for r in results:
pie_chart.add(r[1], [{'value': r[0], 'label': r[1]}])