【发布时间】:2018-10-14 02:33:47
【问题描述】:
我有一个存储调查结果的简单数据框。列是:
| Age | Income | Satisfaction |
它们都包含1 和5(分类)之间的值。我设法生成了一个堆叠条形图,显示了 Satisfaction 值在不同年龄的人之间的分布。
代码是:
#create a random df
data = []
for i in range(500):
sample = {"age" : random.randint(0,5), "income" : random.randint(1,5), "satisfaction" : random.randint(1,5)}
data.append(sample)
df = pd.DataFrame(data)
#group by age
counter = df.groupby('age')['satisfaction'].value_counts().unstack()
#calculate the % for each age group
percentage_dist = 100 * counter.divide(counter.sum(axis = 1), axis = 0)
percentage_dist.plot.bar(stacked=True)
但是,如果Age-0 的green 子集(百分比)高于Age-2 中的子集,则很难进行比较。因此,有没有办法在条形图的每个子部分的顶部添加百分比。像这样的东西,但对于每一个酒吧:
【问题讨论】:
标签: python pandas matplotlib bar-chart