Seaborn 分组条形图具有总值而不是平均值

Seaborn grouped barplot with total values instead of mean

我有一个关于如何组织我的数据以使用 seaborn 制作条形图的问题。 我的数据输入如下所示

influencer  platform  reach
person a    instagram 10000
person b    instagram 5000
person a    instagram 8000
person a    youtube   13000

我需要的是一个条形图,显示每个影响者每个类别的覆盖面总和。

基本上我与 seaborn 非常接近,但它显示的是 reach 列的平均值,而不是总数

sns.barplot(x='influencer', y='reach', data=df, hue='platform')

我尝试用交叉表排列我的输入

pd.crosstab(df['influencer'], df['platform'])

但我得到的是条目总和。

感觉我已经接近了,但我无法完全完成。 你能帮帮我吗?

不更改数据,而是使用 estimator 参数更改 sns.barplot 聚合类别的方式:

estimator : Statistical function to estimate within each categorical bin.

sns.barplot(data=df, x='influencer', y='reach', hue='platform',
            estimator=sum, ci=None)

或者,如果您仍想手动计算总和,请使用 groupby.sum:

sns.barplot(data=df.groupby(['influencer', 'platform'], as_index=False)['reach'].sum(),
            x='influencer', y='reach', hue='platform')