So bestellen sie boxplots auf der x-achse in seaborn
Sie können die folgenden Methoden verwenden, um die Reihenfolge der Boxplots entlang der x-Achse in Seaborn zu ändern:
Methode 1: Boxplots in benutzerdefinierter Reihenfolge sortieren
sns. boxplot (x=' group_var ', y=' values_var ', data=df, order=[' A ',' B ',' C '])
Methode 2: Boxplots anhand einer Metrik sortieren
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 )
Die folgenden Beispiele zeigen, wie jede Methode in der Praxis mit dem folgenden Pandas-DataFrame verwendet wird, der die von Basketballspielern aus drei verschiedenen Teams erzielten Punkte zeigt:
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
Beispiel 1: Boxplots mithilfe einer benutzerdefinierten Reihenfolge anordnen
Der folgende Code zeigt, wie Sie einen Boxplot erstellen, um die Punkteverteilung für jedes Team zu visualisieren und die Boxplots basierend auf dem Teamnamen in der folgenden Reihenfolge zu ordnen: C, A, B.
import seaborn as sns
#create boxplots with custom order
sns. boxplot (x=' team ', y=' points ', data=df, order=[' C ', ' A ', ' B '])
Beachten Sie, dass die Boxplots genau in der von uns angegebenen Reihenfolge entlang der x-Achse angeordnet sind.
Beispiel 2: Boxplots anhand einer Metrik ordnen
Der folgende Code zeigt, wie Sie ein Boxplot erstellen, um die Punkteverteilung für jedes Team zu visualisieren und die Boxplots in aufsteigender Reihenfolge basierend auf den durchschnittlich erzielten Punkten pro Team zu ordnen:
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 )
Beachten Sie, dass die Boxplots entlang der x-Achse basierend auf dem durchschnittlichen Punktwert pro Team in aufsteigender Reihenfolge angeordnet sind.
Um die Boxplots in absteigender Reihenfolge anzuzeigen, geben Sie einfach aufsteigend=False in der Funktion sort_values() an:
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 werden jetzt entlang der x-Achse basierend auf dem durchschnittlichen Punktwert pro Team in absteigender Reihenfolge angeordnet.
Hinweis : Um die Boxplots basierend auf einer anderen Metrik (z. B. Median) zu sortieren, geben Sie diese Metrik einfach nach der Funktion „groupby()“ im obigen Code an.
Zusätzliche Ressourcen
In den folgenden Tutorials wird erläutert, wie Sie andere allgemeine Funktionen in Seaborn ausführen:
So entfernen Sie Ausreißer aus einem Seaborn-Boxplot
So erstellen Sie einen mehrspaltigen Boxplot in Seaborn