如何在ggplot中在matplotlib中创建堆积条形图直方图

时间:2019-09-25 11:51:48

标签: python pandas matplotlib ggplot2 histogram

我正在尝试使用matplotlib中的堆积条来可视化UCI成人收入数据集的年龄和收入。不幸的是,结果并不像我预期的那样。

在R中,代码是这样的

library(ggplot2)
ggplot(adult, aes(age)) + geom_histogram(aes(fill = income), color = "black",binwidth = 1)

结果就是这样

stacked

我正在使用以下代码:

plt.figure(figsize=(16, 8))
plt.hist(adult.age, bins=10, normed=None, histtype='bar', stacked=True)
plt.show()

你们能指出我错了吗?

谢谢

1 个答案:

答案 0 :(得分:0)

IIUC,您想在pd.cut上分组,然后进行数值计数:

# toy data
df = pd.DataFrame({'age':np.random.normal(50,15,1000),
                   'income':np.random.normal(5e4, 1e4, 1000)})

(df['income'].gt(5e4)
 .groupby(pd.cut(df.age, bins=range(20,80)))
 .value_counts()
 .unstack(-1)
 .plot.bar(stacked=True)
)

输出:

enter image description here