百分比堆积条形图熊猫

时间:2019-06-13 12:40:36

标签: python pandas

我有一个数据框,其中包含各个组的总数,我想绘制所有组的总数,但按组进行着色(以可视化每个组对总数的贡献)。

import pandas as pd
data = pd.DataFrame({'Group': [1, 2, 3, 4, 5], 
                 'total': [20.0, 5.0, 30.0, 2.0, 21.0]})

我尝试使用

pd.crosstab(data.Group, data.total).plot.barh(stacked=True)

data['cumsum'] = data['total'].cumsum()
data['cumsum'].plot.barh(stacked=True)

data.pivot_table(values=['total'], 
                  index='Group',
                  aggfunc='sum').plot(kind='bar', stacked=True)

但是这些都不是我想要的-这是一个单个的条,每个组的总数彼此堆叠并按组着色。

2 个答案:

答案 0 :(得分:2)

尝试一下:

data.T.loc[['cumsum']].plot.barh(stacked=True)

答案 1 :(得分:0)

也许不是最好的方法,但是:

pd.concat([data[['total']],data[['total']]],axis=1).transpose().plot.area()

@Quang Hoang的解决方案肯定更好...