【问题标题】:making a stacked barchart in pandas在 pandas 中制作堆叠条形图
【发布时间】:2014-12-28 07:17:23
【问题描述】:

我想从以下数据框创建一个堆积条形图:

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

但是,我得到了这个情节:

关于如何解决它的任何想法?我对groupby 做错了,但不确定解决方案

【问题讨论】:

    标签: python pandas plot bar-chart stacked


    【解决方案1】:

    我已将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()
    

    ... 给出:

    ...我认为这是所寻求的。

    【讨论】:

    • 我正在为类似的question 苦苦挣扎。请问可以帮帮我吗?
    猜你喜欢
    • 1970-01-01
    • 2020-10-20
    • 1970-01-01
    • 2022-11-23
    • 2019-02-01
    • 1970-01-01
    • 2016-05-24
    相关资源
    最近更新 更多