使用分组的DataFrame绘制堆积的直方图

时间:2017-08-29 10:57:48

标签: python pandas plot histogram visualization

我想要堆叠直方图,其中不同的类可见。

目前我的直方图没有带有此代码的类:

plt.hist(hist_matrix2.column_name)

产生这个直方图:

histogram without classes

和另一个具有相同数据的直方图,由具有此代码的类分组:

hist_matrix2.groupby("number").column_name.plot.hist(alpha=0.5, bins  = [0,5,10,15,20,25,30], stacked = True)

产生这个直方图:

histogram with classes

正如您所看到的那样,尽管参数已设置,但它们仍未堆叠。我可以做什么来堆叠类?

1 个答案:

答案 0 :(得分:0)

plt.hist有一个你可以设置的内置堆叠标志:

plt.hist(hist_matrix2.column_name, stacked=True)

编辑以回答您的问题,对于长数据(堆叠多个级别),首先需要将数据重组为列表列表:

wide=hist_matrix2.pivot( columns='number', values='column_name')
#This creates many missing values which pandas does not like, so we drop them
widelist=[wide[col].dropna() for col in wide.columns]
# and the stacked graph is here
plt.hist(widelist,stacked=True)
plt.show()