如何使用 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
知道为什么会这样吗?对按列标记每个小提琴图有什么建议吗?
我相信您的数据具有从 distance
到 population
的一对一映射。当您添加 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)
我正在尝试使用 Seaborn 标记小提琴情节:
ax = sns.violinplot(x='distance', y='Length', data=class_A, scale= 'count')
sns.violinplot without hue set
当我添加 hue='population'
时,我想用它来标记每个小提琴图,我丢失了我的 KDE,它只显示箱线图。
With Hue
知道为什么会这样吗?对按列标记每个小提琴图有什么建议吗?
我相信您的数据具有从 distance
到 population
的一对一映射。当您添加 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)