4
respostas

Box-plot conceitos. Posição das Legendas. Help?

Por gentileza, não me encaminhe para a documentação do Python, porque já tentei. Eu só pergunto no Forum depois de tentar entender a documentação. Confesso que são poucas as vezes que consigo me resolver com a documentação padrão do Python :-/

Então lá vai:

  1. Em relação ao conceito do Box-Plot. O tracinho vertical da esquerda (|) é o valor mínimo da coluna Anos de Estudo. O tracinho vertical da direita é o valor máximo da coluna. Então, o que seriam esses pontinhos mais à esquerda do valor mínimo? Alguém me disse que eram "outliers", mas então o valor mínimo não é o mínimo? Me confundi aqui. Nos gráficos semelhantes, de Renda, esses pontinhos são á direita, indicando "outliers"? Mas quem definiu se são outliers mesmo, ou não? Qual foi a regra usada pela biblioteca pra definir que são outliers?

  2. Como faço para:

    • Trocar as cores do hue (sexo)? Ou para preencher com uma textura?
    • Posicionar a caixinha de legendas no topo, à direita?

code: ax = sns.boxplot(x = 'Anos de Estudo', y = 'UF', hue = 'Sexo', data=dados.query('Renda < 18000'), orient='h') ax.figure.set_size_inches(8, 18) # Personalizando o tamanho da figura ax.set_title('Box-plot de Anos de Estudo por SEXO nos Estados', fontsize=18) # Configurando o título do gráfico ax.set_xlabel('Anos de Estudo', fontsize=14) # Configurando o label do eixo X ax.set_ylabel('Estados', fontsize=14) # Configurando o label do eixo Y ax.set_yticklabels([key for key in uf.values()], fontsize=12) # Configurando o label de cada categoria do eixo Y handles, _ = ax.get_legend_handles_labels() ax.legend(handles, ['Masculino', 'Feminino'], fontsize=12) ax

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

4 respostas

Olá, Lyse!

Então, sobre a primeira dúvida:

O tracinho vertical da esquerda (|) não necessariamente representa o valor mínimo ou máximo do dataset. As "posições" dos tracinhos são calculadas a partir dos primeiro quartil (Q1), do terceiro quartil (Q3) e do intervalo interquartílico (IIQ = Q3 - Q1). Nesse contexto, o limite inferior do boxplot é determinado por Q1 - 1.5 * IIQ, enquanto o limite superior é calculado por Q3 + 1.5 * IIQ. Para se definir os outliers, é necessário um critério. E segundo o critério de Tukey, o que está fora do boxplot seriam os outliers, ou seja, são pontos que diferem significativamente de outras observações.

Vou deixar algumas referências:

Quanto a sua observação de Renda ter pontinhos a direita, isso deve-se ao fato de que a variável renda apresenta uma distribuição assimétrica a direita, então é normal os outliers serem do lado direito.

Quanto a segunda dúvida:

Para mudar as cores, você pode utilizar o palette= na função boxplot(). E para alterar a posição da legenda você pode utilizar bbox_to_anchor= e, assim, definir as coordenadas da caixinha de legenda na figura. Veja o código a seguir:

ax = sns.boxplot(x = 'Anos de Estudo', y = 'UF', hue = 'Sexo', data=dados.query('Renda < 18000'), orient='h', palette='magma')

ax.figure.set_size_inches(8, 18) 

# Personalizando o tamanho da figura 
ax.set_title('Box-plot de Anos de Estudo por SEXO nos Estados', fontsize=18) 

# Configurando o título do gráfico
ax.set_xlabel('Anos de Estudo', fontsize=14) 

# Configurando o label do eixo X
ax.set_ylabel('Estados', fontsize=14)

# Configurando o label do eixo Y 
ax.set_yticklabels([key for key in uf.values()], fontsize=12, ) 

# Configurando o label de cada categoria do eixo Y 
handles, _ = ax.get_legend_handles_labels() 
ax.legend(handles, ['Masculino', 'Feminino'], fontsize=12,bbox_to_anchor=(1.05, 1.0)) 

ax

Que resulta em:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Oi Lyse, Complementando o que o Rosicley te falou:

1o: nunca desanime de ver a documentação, com o tempo você pega o jeito. Não há nada mais completo. 2o: é muito importante que você entenda os conceitos básicos do boxplot para isso deixo um vídeo bem curtinho e fácil para você não esquecer mais os conceitos pertinentes. https://www.youtube.com/watch?v=603rjGO3VPM

Concordo com o Alexandre.

Realmente, a documentação ajuda muito, principalmente (em minha opinião) para identificar os argumentos de uma função e seus tipos, o que uma função retorna e até mesmo o que ela faz. E na documentação das bibliotecas sempre há alguns exemplos que podem ajudar no nosso projeto.

Uma outra coisa que me ajuda muito (muito mesmo!) é o fórum da stack overflow. Inclusive, foi nele que aprendi a como mover a legenda do boxplot rsrs.

Muito bom, estamos juntos!