2017-10-07 2 views
3

Je sais que seaborn.countplot a l'attribut order qui peut être réglé pour déterminer l'ordre des catégories. Mais ce que je voudrais faire, c'est que les catégories soient dans l'ordre du nombre décroissant. Je sais que je peux accomplir cela en calculant le compte manuellement (en utilisant une opération groupby sur l'image originale, etc.) mais je me demande si cette fonctionnalité existe avec seaborn.countplot. Étonnamment, je ne trouve nulle part une réponse à cette question.Seaborn.countplot: commandez des catégories par nombre?

Répondre

6

Cette fonctionnalité n'est pas intégrée dans seaborn.countplot pour autant que je sache - 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

1

Le plus souvent, un countplot Seaborn est pas vraiment nécessaire. Juste complot avec l'intrigue 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()