如何使用 Seaborn 为小提琴绘图添加标签

How to add labels to a violin plot using Seaborn

我正在尝试使用 Seaborn 标记小提琴情节:

ax = sns.violinplot(x='distance', y='Length', data=class_A, scale= 'count')

sns.violinplot without hue set

当我添加 hue='population' 时,我想用它来标记每个小提琴图,我丢失了我的 KDE,它只显示箱线图。

With Hue

知道为什么会这样吗?对按列标记每个小提琴图有什么建议吗?

我相信您的数据具有从 distancepopulation 的一对一映射。当您添加 hue 时,seaborn 试图为每个 population 的每个距离制作一个小提琴图。根据您的数据,这将是大约 400 个小提琴图。问题是由于一对一映射,这些组合中只有 20 个有任何数据。因此,使用 hue.

没有意义

但是,您可以更改图中的 x 标签,以显示距离和人口,类似这样。

df_labels = class_A[['distance', 'population']].sort_values('distance').drop_duplicates()
new_labels = df_labels.distance + ' \n' + df_labels.population
ax.set_xticklabels(new_labels)