Come cambiare l'ordine delle barre in seaborn barplot


È possibile utilizzare i seguenti metodi per modificare l’ordine delle barre in un grafico marino :

Metodo 1: ordinare le barre in Barplot create da dati grezzi

 sns. barplot (x=' xvar ', y=' yvar ', data=df, order=df. sort_values (' yvar '). xvar )

Metodo 2: ordinare le barre in Barplot create da dati aggregati

 sns. barplot (x=' xvar ', y=' yvar ', data=df, order=df_agg[' xvar ']

Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.

Esempio 1: ordinamento delle barre in Barplot create da dati grezzi

Supponiamo di avere il seguente DataFrame panda che contiene informazioni sulle vendite totali effettuate dai vari dipendenti di un’azienda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' employee ': ['Andy', 'Bert', 'Chad', 'Doug', 'Eric', 'Frank'],
                   ' sales ': [22, 14, 9, 7, 29, 20]})

#view DataFrame
print (df)

  employee sales
0 Andy 22
1 Bert 14
2 Chad 9
3 Doug 7
4 Eric 29
5 Frank 20

Possiamo utilizzare la seguente sintassi per creare un barplot in cui le barre sono ordinate in ordine crescente in base al valore delle vendite :

 import seaborn as sns

#create barplot with bars sorted by sales values ascending
sns. barplot (x=' employee ', y=' sales ', data=df, order=df. sort_values (' sales '). employee )

Per ordinare le barre in ordine decrescente, utilizza semplicemente ascending=False nella funzione sort_values() :

 import seaborn as sns

#create barplot with bars sorted by sales values descending
sns. barplot (x=' employee ', y=' sales ', data=df,
            order=df. sort_values (' sales ', ascending= False ). employee ) 

Esempio 2: ordinamento delle barre in Barplot create da dati aggregati

Supponiamo di avere il seguente DataFrame panda che contiene informazioni sulle vendite totali effettuate dai vari dipendenti di un’azienda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' employee ': ['A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C'],
                   ' sales ': [24, 20, 25, 14, 19, 13, 30, 35, 28]})

#view DataFrame
print (df)

  employee sales
0 to 24
1 to 20
2 to 25
3 B 14
4 B 19
5 B 13
6 C 30
7 C 35
8 C 28

Possiamo utilizzare la seguente sintassi per calcolare il valore medio delle vendite , raggruppato per dipendente :

 #calculate mean sales by employee
df_agg = df. groupby ([' employee '])[' sales ']. mean (). reset_index (). sort_values (' sales ')

#view aggregated data
print (df_agg)

  employee sales
1 B 15.333333
0 to 23.000000
2 C 31.000000

Possiamo quindi utilizzare la seguente sintassi per creare un barplot in seaborn che mostri le vendite medie per dipendente con le barre visualizzate in ordine crescente:

 import seaborn as sns

#create barplot with bars ordered in ascending order by mean sales
sns. barplot (x=' employee ', y=' sales ', data=df,
            order=df_agg[' employee '], errorbar=(' ci ', False )) 

L’asse X mostra il nome del dipendente e l’asse Y mostra il valore medio delle vendite per ciascun dipendente.

Risorse addizionali

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

Come visualizzare i valori su Seaborn Barplot
Come creare un barplot raggruppato in Seaborn
Come impostare il colore delle barre in un barplot Seaborn

Aggiungi un commento

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