使用组(和总和)创建堆积的条形图

时间:2019-05-01 09:32:16

标签: pandas group-by bar-chart

这是唯一的,因为我希望堆叠的条形图能够反映实际的数值,而不是根据示例计算计数或大小

我有一个数据框

## create Data frame
DF = pd.DataFrame({ 'name': 
['AA6','B7Y','CCY','AA6','B7Y','CCY','AA6','B7Y','CCY','AA6'],
                    'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1]})

我要按名称分组

#Create a groupby object
gb=DF.groupby(['name', 'measure'])
gb.aggregate('sum')

enter image description here

然后以名称(AA6,B7Y和CCY)的名称绘制三个类别的条形图,并堆叠每个相应的“度量”值,并按其顺序排列(不按升序显示在上方)

我已经尝试过了:

DF.groupby('name').plot(kind='bar', stacked=True)

但是它只是创建单独的图。

1 个答案:

答案 0 :(得分:0)

如果我了解您的要求:

df = pd.DataFrame({ 'name': ['AA6','B7Y','CCY','AA6','B7Y','CCY','AA6','B7Y','CCY','AA6'],
                    'measure': [3.2,4.2,6.8,5.6,3.1,4.8,8.8,3.0,1.9,2.1]})

df.groupby(["name", "measure"])["measure"].sum().unstack().plot(kind="bar", stacked=True)

Stacked bar plot of dataframe values

我们正在使用sum来保持条形图中的measure大小。
如果不需要图例,请将legend=False添加到plot(...)

enter image description here