2015-07-16 8 views
2

Используя приведенный ниже код, я могу сгенерировать pie chart. Когда я нависаю над кусочком пирога, он показывает процент, который занимает срез.Используя PyGal, как я могу встроить ярлык на круговую диаграмму при наведении?

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»):

PyGal Default Pie Chart

Проблема у меня есть с небольшими кусочками. Мне очень трудно понять, что я вишу. В приведенном выше примере это особенно заметно при значениях с 5 по 8, но даже на значении 4 трудно определить, какой из них находится выше. Есть ли способ включить ярлык в подсказку инструмента?

Ближайший я нашел value_formater, но это кажется проигнорированным в круговых диаграммах (о чем свидетельствует пример выше, имеющий только 2 десятичных знака в всплывающей подсказке, несмотря на строку кода pie_chart.value_formatter = lambda x: "%.15f" % x).

+0

Это странно. Я пробовал свой код, и я получаю 15 десятичных знаков и меток ([screenshot] (http://imgur.com/x43rpw3)). Возможно, у вас есть другие параметры, или что-то в вашем HTML? .. –

+0

@P_S, у вас может быть более новая версия Pygal. Похоже, что он достиг версии 2.0 между тем, как я опубликовал вопрос и сейчас. – Andy

+0

сделаю. Вы пробовали обновлять? Есть ли проблема? –

ответ

0

Решение этой проблемы заключается в использовании информации label metadata. Это требует, чтобы словарь, а не одно значение, передавался как второй параметр в .add() в цикле for.

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