Сиборн.countplot: категории заказов по количеству?

Я знаю, что seaborn.countplot атрибут order который можно установить для определения порядка категорий. Но я хотел бы, чтобы категории были в порядке убывания количества. Я знаю, что могу сделать это, вычисляя счетчик вручную (используя groupby работа с исходным фреймом данных и т. д.) но мне интересно, существует ли эта функциональность с seaborn.countplot. Удивительно, но я нигде не могу найти ответа на этот вопрос.

2 ответов


эта функциональность не встроена в 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


чаще всего Сиборн countplot это не нужно. Просто сюжет с панд бар сюжет:

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