Seaborn 如何在 sns.catplot 中添加每个类别的样本数

Posted

技术标签:

【中文标题】Seaborn 如何在 sns.catplot 中添加每个类别的样本数【英文标题】:Seaborn how to add number of samples per category in sns.catplot 【发布时间】:2020-04-16 02:04:32 【问题描述】:

我有一个 catplot 绘图,使用:

s = sns.catplot(x="level", y="value", hue="cond", kind=graph_type, data=df)

但是,组的大小不相等: “Minimal”有 n=12 个样本,而“Moderate”有 n=18 个样本。

如何将此信息添加到图表中?

【问题讨论】:

【参考方案1】:

手动计算尺寸并将它们添加到 xticklabels,像这样

import matplotlib.pyplot as plt
import seaborn as sns

exercise = sns.load_dataset("exercise")
cnts = dict(exercise['time'].value_counts())
key = list(cnts.keys())
vals = list(cnts.values())

g = sns.catplot(x="time", y="pulse", hue="kind",order=key,
            data=exercise, kind="box")
g.set_axis_labels("", "pulse")
g.set_xticklabels([(key[i]+'\n('+str(vals[i])+')') for i in range(len(key))])
plt.show()  

【讨论】:

以上是关于Seaborn 如何在 sns.catplot 中添加每个类别的样本数的主要内容,如果未能解决你的问题,请参考以下文章

Seaborn facetgrid将逗号添加到y轴标签[重复]

Python 数据可视化:分类特征统计图

如何在 Pairplot (seaborn) 中使用科学记数法

如何在 Seaborn 中叠加两个图表?

如何在 seaborn 热图标签中使用科学记数法?

如何修复 matplotlib 和 seaborn 热图?