Создать 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)))
вызов.