2014-10-31 57 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