2016-02-08 4 views
2

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

Что я хочу сделать, это эквивалент 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) 

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

Плюс, как бы это сделать, если в dataframe было несколько столбцов?

ответ

3

Вы используете 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') 

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

редактировать: для dataframe вы можете просто использовать все серии и добавить их один за другим с вызовом

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

.

+0

Я боролся с приведенным здесь примером http://pbpython.com/visualization-tools-1.html, и только добавив данные, как вы описали выше, я смог построить мои «pandas.Series». Благодарю. – Pyderman

Смежные вопросы