从Pandas系列值计数创建pygal.Bar图表?

时间:2018-01-31 10:19:53

标签: python pandas pygal

我正在尝试从应用.value_counts()的pandas DataFrame系列构建pygal条形图,例如无需按照documentationthis question中的建议将系列拆分为多个列并单独添加这些列。

import pandas as pd
import pygal

df = pd.DataFrame.from_dict({'categorical': ['foo','foo','bar','foo','bar','too']})

series = df.categorical.value_counts()
series
> foo    3
  bar    2
  too    1

理想情况下,结果看起来像this question解决方案中的情节。可以这样做吗?

提前致谢!

1 个答案:

答案 0 :(得分:2)

我认为这是您的目标:

Pygal bar chart created from a Pandas series

Pygal不能直接绘制Pandas对象,但是您可以利用Series返回的value_counts对象的属性来设置图表的x标签并添加算作一系列数据。

上面的图表是使用以下代码创建的:

import pandas as pd
import pygal

df = pd.DataFrame.from_dict({'categorical': ['foo','foo','bar','foo','bar','too']})
series = df.categorical.value_counts()

chart = pygal.Bar(width=400, height=300)
chart.x_labels = series.index
chart.add("Count", series.values)

chart.render_to_png("bar.png")  # Or any other output option.