2017-08-29 122 views
3

我想要堆疊的直方圖,其中不同的類是可見的。用堆積的DataFlot繪製堆疊的直方圖

目前我有沒有與此代碼類的直方圖:

plt.hist(hist_matrix2.column_name) 

產生該直方圖:

histogramm without classes

並用相同的數據的另一直方圖,由分組此代碼的類別:

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

產生這個柱狀圖:

histogramm with classes

正如你所看到的類是有,但它不是堆放,雖然參數設置。我能做些什麼來堆棧類?

回答

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

但是,這不是由類分開。如果你的類是按列分隔的,這個堆棧就可以工作。在我的例子中,'數字'是類標籤。隨着groupby我得到分離類,但他們疊加,我想他們堆積(plot2)。 –