在 seaborn 图表中对分类标签进行排序

Posted

技术标签:

【中文标题】在 seaborn 图表中对分类标签进行排序【英文标题】:Sorting categorical labels in seaborn chart 【发布时间】:2017-10-19 11:02:38 【问题描述】:

我确定这应该很容易,但我在 seaborn 文档中找不到我如何具体选择要显示的 x 标签分类变量的顺序?

我每周的工作时间如下,但我想在我的 x 轴上从 0-10、11-20、21-30、31-40 和超过 40 小时订购这些时间。我该怎么做?

def hours_per_week (x):
if x < 11: return '0-10 hours'
elif x < 21: return '11-20 hours'
elif x < 31: return '21-30 hours'
elif x < 41: return '31-40 hours'
else: return 'More than 40 hours'

这是我绘制图表的 seaborn 代码。请注意,“收入猫”是收入低于 50K 和收入高于 50K

的人的分类分组
plot_income_cat_hours = sns.countplot(x='hours_per_week_grouping',
                                      hue='income-cat', data=data)

这是目前我的情节的样子(上面的代码中没有包含一些额外的格式,因为不相关):

【问题讨论】:

你试过order参数吗? seaborn.pydata.org/generated/seaborn.countplot.html 在数据集上尝试sort_values() 【参考方案1】:

设置order参数。

plot_income_cat_hours = sns.countplot(x='hours_per_week_grouping',
                        hue='income-cat', data=data, order=['place the desired order here'])

【讨论】:

【参考方案2】:

您可以尝试以下方法,

sns.countplot(data = data.sort_values(by="hours_per_week_grouping"), 
              x= "hours_per_week_grouping", hue= "income-cat")

【讨论】:

以上是关于在 seaborn 图表中对分类标签进行排序的主要内容,如果未能解决你的问题,请参考以下文章

在一个视图表中对多个模型进行排序

Python图表数据可视化Seaborn:2. 分类数据可视化

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

当输入是 DataFrame 时在 seaborn 中对箱线图进行分组

如何在Python中对版本标签列表进行排序[重复]

text 在Google电子表格中对标签进行排序