简体   繁体   中英

Plot stacked histogram with grouped DataFrame

I want I stacked histogram where the different classes are visible.

At the moment I have the histogram without classes with this code:

plt.hist(hist_matrix2.column_name)

which produces this histogram:

没有类的直方图

and another histogram with the same data, that is grouped by the classes with this code:

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

which produces this histogram:

直方图与类

As you can see the classes are there but it is not stacked, although the parameter is set. What can I do to stack the classes?

plt.hist has a built-in stacking flag you can set:

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

Edit in response to your question, for long data (with multiple levels stacked) first you need to restructure the data into a list of lists:

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()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM