seaborn.boxenplot - 如何显示平均值?

Posted

技术标签:

【中文标题】seaborn.boxenplot - 如何显示平均值?【英文标题】:seaborn.boxenplot - How to display the mean values? 【发布时间】:2021-06-25 00:50:21 【问题描述】:

showmeans = True 在箱线图中显示手段。

除了中线之外,有没有办法显示 seaborn.boxenplot 的平均值?

什么是低成本但详细(类似于 boxenplot)的解决方案?

附:谷歌搜索引擎无法区分 boxenplot 和 boxplot 的区别。


编辑:YOZHIKOFF 解决方案的结果: 代码:

fig = plt.figure(figsize = (12,5))
a1 = sns.boxenplot(y = 'price', x = 'grade', data=df2 )
a1 = sns.scatterplot(data=df2.groupby('grade')['price'].mean(), zorder=10)
a1.set(yscale='log')
plt.xticks(rotation=60);

【问题讨论】:

【参考方案1】:

一种解决方法是简单地单独绘制均值,因此我们对文档中的seaborn.boxenplot 示例稍作修改

import seaborn as sns

sns.set_theme(style="whitegrid")

tips = sns.load_dataset("tips")
proxy_df = tips.groupby('day')["total_bill"].mean().to_frame().reset_index()

ax = sns.stripplot(x="day",  y="total_bill", data=proxy_df, zorder=10,  color='C0', linewidth=1, jitter=False, edgecolor='lightgray')
ax = sns.boxenplot(x="day", y="total_bill", data=tips)

请注意,我们在这里使用zorder 来强制将手段绘制在boxenplots 之上。

【讨论】:

哦,对,实际上非常酷的方法。问题是我的数据的两个图没有正确重合。它要么是散点图覆盖较小的 x 跨度,要么是向右倾斜。 我看不出有什么原因会发生这种情况。一种更通用的方法是使用matplotlib 绘制散点图,完全控制标记位置。您能否举一个最小的示例来说明您的数据的外观,以便我可以重现错位? 我已经提供了截图。 我已将 sn-p 更新为更通用的版本,它现在应该适用于您的情况。 对我来说,这些点对齐得恰到好处...您使用的是jitter=False 选项吗?

以上是关于seaborn.boxenplot - 如何显示平均值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用数据透视和反透视的情况下在 SQL Server 中水平显示数据?

如何在 Android 中水平滚动 ImageView?

如何在单个活动上水平排列多个图像

如何在不使用pivot和unpivot的情况下在SQL Server中水平显示数据?

如何在 PagedGridView 中水平对齐中心的加载图标?

word 中水平滚动条与垂直滚动条怎样设置与取消??