Seborn.countlot:按计数对类别进行排序

2022-02-27 00:00:00 python pandas plot seaborn bar-chart

问题描述

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


解决方案

据我所知,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()

相关文章