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')
我有一个关于如何组织我的数据以使用 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')