【问题标题】:Countplot with relative frequencies or density curves具有相对频率或密度曲线的计数图
【发布时间】:2019-07-14 04:24:08
【问题描述】:

我正在尝试可视化三组数据(色调)的分类数据。使用 seaborn,似乎 countplot() 可以解决问题(下面文档链接中的第二个示例看起来像我需要的那样)。但不是在 y 轴上计数,是否可以按组按比例计算?

在链接中的第二个示例中,男子组(蓝色条)将分别约为 22%、18%、60% 在一等、二等和三等,而不是计数。妇女和儿童组也会这样做。

Seaborn Example

【问题讨论】:

    标签: python comparison seaborn distribution categorical-data


    【解决方案1】:

    据我所知,这不是 Seaborn 直接的选项,但您可以手动创建比例计数数据集并使用 sns.barplot 绘制:

    df = sns.load_dataset('titanic')
    # [1] Simple count
    sns.countplot(x='class', data=df)
    plt.show()
    # [1B] By percent
    pct = df['class'].value_counts(normalize=True).reset_index().rename({'index':'class','class':'percent'}, axis=1)
    sns.barplot(x='class', y='percent', data=pct)
    plt.show()
    
    # [2] Two var count
    sns.countplot(x='class', hue='who', data=df)
    plt.show()
    # [2b] By percent
    pct2 = (df.groupby(['class','who']).size() / df.groupby(['class']).size()).reset_index().rename({0:'percent'}, axis=1)
    sns.barplot(x='class', hue='who', y='percent', data=pct2)
    plt.show()
    


    每条评论的编辑次数

    您可以通过更改用于计算pct 数据框的分数的分母来相当轻松地修改您计算的百分比。

    # [3] Grouped by 'class'; hue by 'who'
    # IIUC, this is what you're asking for
    pct3 = (df.groupby(['class','who']).size() / df.groupby(['who']).size()).reset_index().rename({0:'percent'}, axis=1)
    sns.barplot(x='class', hue='who', y='percent', data=pct3)
    plt.show()
    

    您还可以通过交换sns.boxplot 命令中的huex 参数来更改分组。在我看来,第二个选项更直观一些。

    # [3b] Grouped by 'who'; hue by 'class'
    # In my view, this is a bit more intuitive; each grouping sums to 100%, 
    # and you can compare across class for men, women, and children more easily
    sns.barplot(x='who', hue='class', y='percent', data=pct3)
    plt.show()
    

    【讨论】:

    • 感谢 Brendan,很高兴知道稍微调整一下就可以了。您将如何显示第二个图表,其中每个“谁”组在所有三个“类”中都等于 1?看起来每个班级的三个条形总和为 1,但我对每个色调总和 1 感兴趣。这有意义吗?
    猜你喜欢
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-08
    • 2021-07-25
    • 2018-02-11
    • 2019-07-19
    相关资源
    最近更新 更多