【问题标题】:How to add labels to a violin plot using Seaborn如何使用 Seaborn 为小提琴图添加标签
【发布时间】:2017-12-01 00:40:54
【问题描述】:

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

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

sns.violinplot without hue set

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

With Hue

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

【问题讨论】:

  • 发布您的数据框样本
  • 看起来你不需要色调。每个距离是否恰好映射到一个种群?它试图为每个距离绘制所有 20 个人口小提琴并将它们粉碎在一起。
  • 您可以尝试制作一个带有距离的自定义 x 轴人口标签。

标签: python pandas seaborn violin-plot


【解决方案1】:

我相信您的数据具有从 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)

【讨论】:

  • 非常感谢!但是,它起作用了,因为标签是距离和文本的组合,我对它进行了轻微更改。new_labels = df_labels.distance.astype(str) + ' \n' + df_labels.population
猜你喜欢
  • 2023-03-31
  • 2020-12-19
  • 1970-01-01
  • 2017-06-24
  • 2021-10-14
  • 2018-01-15
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
相关资源
最近更新 更多