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


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

2 9

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

Введите описание изображения здесь

Чаще всего подсчет количества морских Рожков не является действительно необходимым. Просто заговор с пандами bar plot:

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