Come ordinare boxplot sull'asse x in seaborn


È possibile utilizzare i seguenti metodi per modificare l’ordine dei boxplot lungo l’asse x in Seaborn:

Metodo 1: ordinamento dei box plot utilizzando l’ordine personalizzato

 sns. boxplot (x=' group_var ', y=' values_var ', data=df, order=[' A ',' B ',' C '])

Metodo 2: ordinamento dei box plot utilizzando una metrica

 group_means=df. groupby ([' group_var '])[' values_var ']. mean (). sort_values (ascending= True )

sns. boxplot (x=' group_var ', y=' values_var ', data=df, order=group_means. index )

I seguenti esempi mostrano come utilizzare ciascun metodo nella pratica con il seguente DataFrame panda che mostra i punti segnati dai giocatori di basket di tre squadre diverse:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B',
                            'B', 'B', 'C', 'C', 'C', 'C', 'C'],
                   ' points ': [3, 4, 6, 8, 9, 10, 13, 16, 18, 20, 8, 9, 12, 13, 15]})

#view head of DataFrame
print ( df.head ())

  team points
0 to 3
1 to 4
2 to 6
3 to 8
4 to 9

Esempio 1: ordinare i box plot utilizzando un ordine personalizzato

Il codice seguente mostra come creare un boxplot per visualizzare la distribuzione dei punti per ciascuna squadra e classificare i boxplot nel seguente ordine in base al nome della squadra: C, A, B.

 import seaborn as sns

#create boxplots with custom order
sns. boxplot (x=' team ', y=' points ', data=df, order=[' C ', ' A ', ' B '])

Nota che i boxplot sono ordinati lungo l’asse x nell’ordine esatto che abbiamo specificato.

Esempio 2: ordinare i box plot utilizzando una metrica

Il codice seguente mostra come creare un boxplot per visualizzare la distribuzione dei punti per ciascuna squadra e classificare i boxplot in ordine crescente in base alla media dei punti segnati per squadra:

 import seaborn as sns

#calculate mean points by team
mean_by_team = df. groupby ([' team '])[' points ']. mean (). sort_values (ascending= True )

#create boxplots ordered by mean points (ascending)
sns. boxplot (x=' team ', y=' points ', data=df, order=mean_by_team. index )

Tieni presente che i boxplot sono ordinati lungo l’asse x in base al valore del punto medio per squadra in ordine crescente.

Per visualizzare i boxplot in ordine decrescente, è sufficiente specificare ascending=False nella funzione sort_values() :

 import seaborn as sns

#calculate mean points by team
mean_by_team = df. groupby ([' team '])[' points ']. mean (). sort_values (ascending= False )

#create boxplots ordered by mean points (descending)
sns. boxplot (x=' team ', y=' points ', data=df, order=mean_by_team. index ) 

I boxplot sono ora ordinati lungo l’asse x in base al valore medio dei punti per squadra in ordine decrescente.

Nota : per ordinare i boxplot in base a una metrica diversa (ad esempio mediana), è sufficiente specificare tale metrica dopo la funzione groupby() nel codice precedente.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre funzioni comuni in Seaborn:

Come rimuovere i valori anomali da un boxplot Seaborn
Come creare un boxplot a più colonne in Seaborn

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *