web-dev-qa-db-fra.com

Seaborn.countplot: ordre des catégories par nombre?

Je sais que seaborn.countplot a l'attribut order qui peut être défini pour déterminer l'ordre des catégories. Mais ce que je voudrais faire, c'est que les catégories soient classées par ordre décroissant. Je sais que je peux accomplir cela en calculant le nombre manuellement (à l'aide d'une opération groupby sur le cadre de données d'origine, etc.) mais je me demande si cette fonctionnalité existe avec seaborn.countplot. De manière surprenante, je ne trouve nulle part une réponse à cette question.

11
nfernand

Autant que je sache, cette fonctionnalité n'est pas intégrée à seaborn.countplot - le paramètre order n'accepte qu'une liste de chaînes pour les catégories et laisse la logique de commande à l'utilisateur. 

Ce n’est pas difficile à faire avec value_counts() à condition d’avoir un DataFrame. Par exemple, 

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

35
miradulo

Le plus souvent, un décompte en mer n'est pas vraiment nécessaire. Juste complot avec le complot de barre de pandas:

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