Countplot: 按计数的订单类别

我知道 seaborn.countplot有属性 order,可以设置它来确定类别的顺序。但是我想要做的是按照降序排列这些类别。我知道我可以通过手动计算计数(使用原始数据帧上的 groupby操作等)来实现这一点,但我想知道 seaborn.countplot是否存在这一功能。令人惊讶的是,我在任何地方都找不到这个问题的答案。

112318 次浏览

据我所知,这个功能并没有内置到 seaborn.countplot中—— order参数只接受类别的字符串列表,并将排序逻辑留给用户。

如果你有一个数据框架,这对于 value_counts()来说并不困难,

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt


sns.set(style='darkgrid')


titanic = sns.load_dataset('titanic')
sns.countplot(x = 'class',
data = titanic,
order = titanic['class'].value_counts().index)
plt.show()

enter image description here

大多数情况下,海上计划并不是必须的,只需要用大熊猫来计划就可以了:

import seaborn as sns; sns.set(style='darkgrid')
import matplotlib.pyplot as plt


df = sns.load_dataset('titanic')


df['class'].value_counts().plot(kind="bar")


plt.show()