Отображение данных в (%) для круговой диаграммы с использованием библиотеки PyChart в Python

Я создаю круговую диаграмму, используя библиотеку PyChart в Python. Вот мой код:

from pychart import *
import sys

data = [("foo", 10), ("bar", 20), ("baz", 30), ("ao", 40)]
theme.use_color = True
theme.get_options()

ar = area.T(size = (150, 150), legend = legend.T(),
            x_grid_style = None, y_grid_style = None)

plot = pie_plot.T(data = data, arc_offsets = [0, 0, 0, 0], label_offset = 20, arrow_style = arrow.a3)
ar.add_plot(plot)
ar.draw()

Как я могу отобразить данные в (%) на этой круговой диаграмме?


person Avadhesh    schedule 01.06.2011    source источник


Ответы (1)


Будет ли работать преобразование данных в проценты перед передачей их в функцию графика?

Например:

def to_percents(data):
    total = float(sum(v for _, v in data))
    data[:] = [(k, v / total) for k, v in data]
    return data

data = to_percents([("foo", 1), ("bar", 3), ("baz", 5), ("ao", 7)])
print data

Выход:

[('foo', 0.0625), ('bar', 0.1875), ('baz', 0.3125), ('ao', 0.4375)]
person samplebias    schedule 01.06.2011
comment
Тоже не так критично, но надо делать (к, об/всего)*100 - person Hgeg; 01.06.2011
comment
Да, вы могли бы сделать (k, (v/total)*100.0), но логика отображения Pychart, похоже, не заботится о диапазоне данных, а только о соотношениях. - person samplebias; 01.06.2011