Seaborn.countplot:按计数排序?

nfe*_*and 20 python plot pandas seaborn

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

mir*_*ulo 49

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

value_counts()如果你有一个DataFrame,这并不难.例如,

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()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • @dax90 在那里调用 `.value_counts(ascending=True)` 。 (2认同)

Imp*_*est 8

大多数情况下,seaborn 计数图并不是真正必要的。只需绘制熊猫条形图:

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()
Run Code Online (Sandbox Code Playgroud)

  • 典型的“我该怎么做?” “不要做×。” 堆栈溢出答案 (5认同)