Как заказать коробчатые диаграммы по оси x в seaborn
Вы можете использовать следующие методы, чтобы изменить порядок коробчатых диаграмм по оси X в Seaborn:
Метод 1: сортировка прямоугольных графиков с использованием пользовательского порядка
sns. boxplot (x=' group_var ', y=' values_var ', data=df, order=[' A ',' B ',' C '])
Метод 2: сортировка ящичковых графиков с использованием метрики
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 )
В следующих примерах показано, как использовать каждый метод на практике со следующим DataFrame pandas, который показывает очки, набранные баскетболистами из трех разных команд:
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
Пример 1. Упорядочение прямоугольных диаграмм с использованием пользовательского порядка
В следующем коде показано, как создать коробчатую диаграмму для визуализации распределения очков для каждой команды и ранжировать коробчатые диаграммы в следующем порядке на основе названия команды: C, A, B.
import seaborn as sns
#create boxplots with custom order
sns. boxplot (x=' team ', y=' points ', data=df, order=[' C ', ' A ', ' B '])
Обратите внимание, что коробчатые диаграммы упорядочены по оси X в том порядке, который мы указали.
Пример 2. Упорядочение коробчатых диаграмм с использованием метрики
В следующем коде показано, как создать коробчатую диаграмму для визуализации распределения очков для каждой команды и ранжировать коробчатые диаграммы в порядке возрастания на основе среднего количества очков, набранных каждой командой:
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 )
Обратите внимание, что коробчатые диаграммы упорядочены по оси X на основе среднего значения очков на команду в порядке возрастания.
Чтобы отобразить коробчатые диаграммы в порядке убывания, просто укажите возрастание=False в функции 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 )
Бокс-диаграммы теперь упорядочены по оси X на основе среднего значения очков на команду в порядке убывания.
Примечание . Чтобы отсортировать диаграммы на основе другого показателя (например, медианы), просто укажите этот показатель после функции groupby() в приведенном выше коде.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные функции в seaborn:
Как удалить выбросы из коробчатого графика Сиборна
Как создать многоколоночную диаграмму в Seaborn