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