Создайте график PyGal из кадра данных pandas

Я хотел попробовать использовать 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)

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

Кроме того, как бы я это сделал, если бы в кадре данных было несколько столбцов?


person cryptoref    schedule 08.02.2016    source источник


Ответы (1)


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

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

вызов.

person freethrow    schedule 06.03.2016
comment
Я боролся с приведенным здесь примером pbpython.com/visualization-tools-1.html. , и только добавив данные, как вы описали выше, я смог построить свой pandas.Series. Спасибо. - person Pyderman; 31.03.2016