在pandas中绘制多个x轴属性的堆积条形图

时间:2017-08-31 15:56:23

标签: python pandas matplotlib dataframe stacked-chart

我的直方图中有四个条形,代表我文件中字母,数字,特殊字符和alphnumeric的频率。

我做了以下工作来获得每个家庭的频率:

def  group_data():
    def find_group(val):
        val = str(val)
        val = val.lower()

        if val.isalpha():
            return 'alphabet'
        elif val.isdigit():
            return 'digit'
        elif val.isalnum and any(c.isalpha() for c in val) and any(c.isdigit() for c in val):

            return 'alphanum'
        else:
            return 'spec-char'


    df = pd.read_csv('file1.csv', sep=',')
    df = df.astype(str)
    df.manual_raw_value = df.manual_raw_value.str.lower()
    df.manual_raw_value.apply(find_group)
    df.manual_raw_value.apply(find_group).value_counts().plot(kind='bar')

我得到了以下内容 first file and second file enter image description here

现在我想得到一个堆积的条,所以我做了以下

normal = df.manual_raw_value.apply(find_group).value_counts()
aug=df2.manual_raw_value.apply(find_group).value_counts()
sub_df = pd.concat([normal, aug], keys=["alphabet", "digit","spec-char","alpha-num"]).unstack()
sub_df.plot(kind='bar', stacked=True, rot=1)
plt.show()

然而,我得到了错误的情节

修改-1 我应该得到如下情节: enter image description here

的红色条
aug=df2.manual_raw_value.apply(find_group).value_counts()

和蓝色条

normal = df.manual_raw_value.apply(find_group).value_counts()

0 个答案:

没有答案