Hoe boxplots op de x-as in seaborn te bestellen
U kunt de volgende methoden gebruiken om de volgorde van boxplots langs de x-as in Seaborn te wijzigen:
Methode 1: Boxplots sorteren met aangepaste volgorde
sns. boxplot (x=' group_var ', y=' values_var ', data=df, order=[' A ',' B ',' C '])
Methode 2: Boxplots sorteren met behulp van een metriek
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 )
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met de volgende panda’s DataFrame, waarin de punten worden weergegeven die zijn gescoord door basketbalspelers uit drie verschillende teams:
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
Voorbeeld 1: Boxplots bestellen via een aangepaste volgorde
De volgende code laat zien hoe u een boxplot maakt om de puntenverdeling voor elk team te visualiseren en de boxplots in de volgende volgorde te rangschikken op basis van de teamnaam: C, A, B.
import seaborn as sns
#create boxplots with custom order
sns. boxplot (x=' team ', y=' points ', data=df, order=[' C ', ' A ', ' B '])
Merk op dat de boxplots langs de x-as zijn gerangschikt in de exacte volgorde die we hebben opgegeven.
Voorbeeld 2: Boxplots bestellen met behulp van een metriek
De volgende code laat zien hoe u een boxplot maakt om de puntenverdeling voor elk team te visualiseren en de boxplots in oplopende volgorde te rangschikken op basis van de gemiddelde punten die per team zijn gescoord:
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 )
Houd er rekening mee dat de boxplots langs de x-as zijn gerangschikt op basis van de gemiddelde puntenwaarde per team, in oplopende volgorde.
Om de boxplots in aflopende volgorde weer te geven, geeft u eenvoudigweg oplopend=False op in de functie 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 )
Boxplots worden nu langs de x-as gerangschikt op basis van de gemiddelde puntenwaarde per team in aflopende volgorde.
Opmerking : om de boxplots te sorteren op basis van een andere metriek (bijvoorbeeld mediaan), specificeert u eenvoudigweg die metriek na de functie groupby() in de bovenstaande code.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende functies in Seaborn kunt uitvoeren:
Hoe u uitschieters uit een Seaborn-boxplot verwijdert
Hoe u een boxplot met meerdere kolommen maakt in Seaborn