Создать PyGal граф из панд данных

Я хотел попробовать использовать pygal с его способностью создавать данные SVG, так как я собираюсь создать печатную страницу PDF из объединенного HTML с графиком SVG.

То, что я хочу сделать, является эквивалентом pygal.plot(dataframe), но я не вижу этого в документах.

Я знаю, что я могу сделать:

df = pd.Series(np.random.randn(5), index = ['a', 'b', 'c', 'd', 'e'])
chart = pygal.Line()
for index, row in df.iteritems():
    chart.add(index,row)

Но это кажется неправильным с точки зрения питона. Должен ли я делать это по-другому?

Плюс, как бы я это сделал, если бы у фрейма данных было несколько столбцов?

1 ответ

Решение

Вы используете Pygal API неправильно. Метки должны соответствовать индексу. Кроме того, вы должны избегать iteritems при использовании панд.

line_chart = pg.Line()
line_chart.x_labels = ['a', 'b', 'c', 'd', 'e']
line_chart.add('Firefox', pd.Series(np.random.randn(5)))
line_chart.render_to_file('bchart.svg')

Надеюсь это поможет.

изменить: для фрейма данных вы можете просто использовать все серии и добавлять их один за другим с помощью

line_chart.add('Series name', pd.Series(np.random.randn(5)))

вызов.

Другие вопросы по тегам