Como solicitar boxplots no eixo x no seaborn


Você pode usar os seguintes métodos para alterar a ordem dos boxplots ao longo do eixo x no Seaborn:

Método 1: classificar gráficos de caixa usando ordem personalizada

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

Método 2: classificar gráficos de caixa usando uma métrica

 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 )

Os exemplos a seguir mostram como usar cada método na prática com o seguinte DataFrame do pandas, que mostra os pontos marcados por jogadores de basquete de três times diferentes:

 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

Exemplo 1: solicitar gráficos de caixa usando um pedido personalizado

O código a seguir mostra como criar um boxplot para visualizar a distribuição de pontos de cada equipe e classificar os boxplots na seguinte ordem com base no nome da equipe: C, A, B.

 import seaborn as sns

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

Observe que os boxplots são ordenados ao longo do eixo x na ordem exata que especificamos.

Exemplo 2: ordenando box plots usando uma métrica

O código a seguir mostra como criar um boxplot para visualizar a distribuição de pontos de cada equipe e classificar os boxplots em ordem crescente com base na média de pontos marcados por equipe:

 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 )

Observe que os boxplots são ordenados ao longo do eixo x com base no valor médio de pontos por equipe em ordem crescente.

Para exibir os boxplots em ordem decrescente, basta especificar ascendente=False na função 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 ) 

Os boxplots agora são ordenados ao longo do eixo x com base no valor médio de pontos por equipe em ordem decrescente.

Nota : Para classificar os boxplots com base em uma métrica diferente (por exemplo, mediana), basta especificar essa métrica após a função groupby() no código acima.

Recursos adicionais

Os tutoriais a seguir explicam como executar outras funções comuns no Seaborn:

Como remover valores discrepantes de um boxplot Seaborn
Como criar um boxplot de múltiplas colunas no Seaborn

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *