Seaborn - Distribuição de Observações
Em gráficos de dispersão categóricos que tratamos no capítulo anterior, a abordagem torna-se limitada nas informações que pode fornecer sobre a distribuição de valores dentro de cada categoria. Agora, indo mais longe, vamos ver o que pode nos facilitar na realização de comparação em categorias.
Box Plots
Boxplot é uma maneira conveniente de visualizar a distribuição de dados por meio de seus quartis.
Os gráficos de caixa geralmente têm linhas verticais que se estendem das caixas, que são denominadas de bigodes. Esses bigodes indicam variabilidade fora dos quartis superior e inferior, portanto, os Box Plots também são denominados comobox-and-whisker trama e box-and-whisker diagrama. Quaisquer outliers nos dados são plotados como pontos individuais.
Exemplo
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('iris')
sb.swarmplot(x = "species", y = "petal_length", data = df)
plt.show()
Resultado
Os pontos no gráfico indicam o outlier.
Tramas de violino
Os Violin Plots são uma combinação do box plot com as estimativas de densidade do kernel. Portanto, esses gráficos são mais fáceis de analisar e compreender a distribuição dos dados.
Vamos usar o conjunto de dados de dicas chamado para aprender mais sobre tramas de violino. Este conjunto de dados contém as informações relacionadas às dicas dadas pelos clientes em um restaurante.
Exemplo
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill", data=df)
plt.show()
Resultado
Os valores de quartil e bigode do boxplot são mostrados dentro do violino. Como a trama do violino usa o KDE, a parte mais larga do violino indica a densidade mais alta e a região estreita representa densidade relativamente mais baixa. O intervalo interquartil no boxplot e a porção de densidade mais alta no kde estão na mesma região de cada categoria do gráfico de violino.
O gráfico acima mostra a distribuição de total_bill em quatro dias da semana. Mas, além disso, se quisermos ver como a distribuição se comporta em relação ao sexo, vamos explorá-la no exemplo abaixo.
Exemplo
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y = "total_bill",hue = 'sex', data = df)
plt.show()
Resultado
Agora podemos ver claramente o comportamento de gastos entre homens e mulheres. Podemos facilmente dizer que os homens faturam mais do que as mulheres olhando para a trama.
E, se a variável hue tiver apenas duas classes, podemos embelezar o enredo dividindo cada violino em dois, em vez de dois violinos em um determinado dia. Qualquer uma das partes do violino se refere a cada classe na variável hue.
Exemplo
import pandas as pd
import seaborn as sb
from matplotlib import pyplot as plt
df = sb.load_dataset('tips')
sb.violinplot(x = "day", y="total_bill",hue = 'sex', data = df)
plt.show()