Seaborn.countplot:按计数排序?

时间:2017-10-07 18:19:15

标签: python pandas plot seaborn

我知道seaborn.countplot具有属性order,可以设置该属性以确定类别的顺序。但我想要做的是让类别按递减计数的顺序排列。我知道我可以通过手动计算计数(在原始数据帧上使用groupby操作等)来完成此操作。但我想知道seaborn.countplot是否存在此功能。令人惊讶的是,我无法在任何地方找到这个问题的答案。

2 个答案:

答案 0 :(得分:37)

据我所知,此功能未内置于seaborn.countplot中 - order参数仅接受类别的字符串列表,并将排序逻辑留给用户。

如果你有一个DataFrame,这对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

答案 1 :(得分:3)

大多数情况下,海滨计数图并不是必需的。只需用熊猫条形图绘制:

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()