2017-04-21 171 views
3

熊貓GROUPBY我有datafrme上,我的兩列執行GROUPBY:直方圖與matplotlib

ax = df_all.groupby(['Component', 'SubComponent' ])['SubComponent'].count() 

這給我這個:

-------------------------------------------------- 
| Component | SubComponent|      | 
-------------------------------------------------- 
|A   |First  |      1| 
-------------------------------------------------- 
|   |Second  |     10| 
-------------------------------------------------- 
|   |Third  |      6| 
-------------------------------------------------- 
|B   |First  |      8| 
-------------------------------------------------- 
|   |Second  |      5| 
-------------------------------------------------- 
|   |Third  |     17| 
-------------------------------------------------- 

現在我想作一個直方圖出的。 每個條都是Component,每個組件將在SubComponents上進行劃分,顯示每個SubComponent具有不同顏色的出現次數。

是否有簡單的方法來完成它與matplotlib.pyploy?

感謝, Submi

回答

2

您可以使用unstackDataFrame.plot.bar

print (ax.unstack()) 
SubComponent First Second Third 
Component       
A     1  4  15 
B     6  2  1 

ax.unstack().plot.bar(stacked=True) 

graph


print (ax.unstack(0)) 
Component  A B 
SubComponent  
First   1 6 
Second   4 2 
Third   15 1 

ax.unstack(0).plot.bar(stacked=True) 

graph3

通知

What is the difference between size and count in pandas?

+0

謝謝,這似乎很好地工作。 – Submi

+0

你可能知道爲什麼我無法使用plt.figure(figsize =(10,8))更改此圖的大小嗎? – Submi

+1

嘗試'ax.unstack()。plot.bar(stacked = True,figsize =(10,8))' – jezrael