2014-10-31 55 views
3

堆疊條形圖我想從以下數據框中建立堆疊的條形圖:使得在熊貓

VALUE  COUNT RECL_LCC RECL_PI 
0  1 15686114   3  1 
1  2 27537963   1  1 
2  3 23448904   1  2 
3  4 1213184   1  3 
4  5 14185448   3  2 
5  6 13064600   3  3 
6  7 27043180   2  2 
7  8 11732405   2  1 
8  9 14773871   2  3 

會有在情節2條。一個用於RECL_LCC,另一個用於RECL_PI。每個欄中會有3個部分對應於RECL_LCC和RECL_PI中的唯一值,即1,2,3,並且將對每個部分的COUNT進行總結。到目前爲止,我有這樣的事情:

df = df.convert_objects(convert_numeric=True)  
sub_df = df.groupby(['RECL_LCC','RECL_PI'])['COUNT'].sum().unstack() 
sub_df.plot(kind='bar',stacked=True) 

不過,我得到這樣的情節: enter image description here

就如何解決它的任何想法?我正在做一些錯誤的groupby,但不知道解決方案

回答

5

我已經把數據顯示在stackpandas.dat。鑑於這些數據:

from pandas import * 
import matplotlib.pyplot as plt 

df = read_table("stackpandas.dat"," +",engine='python') 

df = df.convert_objects(convert_numeric=True) 
sub_df1 = df.groupby(['RECL_LCC'])['COUNT'].sum() 
sub_df2 = df.groupby(['RECL_PI'])['COUNT'].sum() 
sub_df = concat([sub_df1,sub_df2],keys=["RECL_LCC","RECL_PI"]).unstack() 
sub_df.plot(kind='bar',stacked=True,rot=1) 
plt.show() 

...給: enter image description here

...我認爲這是所尋求的。

+0

謝謝!這工作 – user308827 2014-11-01 01:46:44