Seaborn BoxPlot
Diferentes gráficos estatísticos e plotagens podem ser criados usando o módulo seaborn em Python. Podemos criar um gráfico de caixa usando a função seaborn.boxplot()
.
Analistas e estatísticos freqüentemente usam um gráfico de caixa para representar dados em diferentes níveis ou categorias. A figura do box plot pode transmitir muitos valores estatísticos. A figura a seguir explica isso.
A função boxplot()
funciona de forma eficiente na plotagem de valores categóricos de um conjunto de dados e também pode funcionar com listas únicas ou vetores de array. É muito semelhante ao enredo do violino.
No exemplo a seguir, traçamos um gráfico de caixa para uma única distribuição para ter uma ideia da figura final.
import random
import numpy as np
import seaborn as sns
n = random.sample(range(0, 50), 30)
arr = np.array(n)
sns.boxplot(n)
Também podemos traçar um gráfico de dispersão sobre o gráfico de caixa. Isso lhe dará uma melhor compreensão da distribuição plotada e da figura final.
Usaremos a função seaborn.stripplot()
para traçar o gráfico de dispersão. Por exemplo,
import random
import numpy as np
import seaborn as sns
n = random.sample(range(0, 50), 30)
arr = np.array(n)
sns.boxplot(n)
sns.stripplot(n, color="red")
O box plot pode ser utilizado de forma eficiente para plotar as variáveis categóricas e tornar sua comparação simples. No código a seguir, traçaremos o gráfico de caixa para várias categorias.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
"Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
"Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
"Product": [
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
],
}
)
sns.boxplot(data=df, y="Price", x="Quantity")
Observe como, no conjunto de dados acima, podemos comparar facilmente o preço em diferentes quantidades. Também podemos adicionar o parâmetro hue
e definir seu valor como a variável Product
. Dessa forma, seremos capazes de plotar diferentes caixas para diferentes produtos.
Podemos usar matplotlib.pyplot.ylim()
e matplotlib.pyplot.xlim()
para definir os limites dos eixos x e y do gráfico.
Podemos usar muitos outros parâmetros para ajustar o gráfico final. O parâmetro linewidth
pode ser usado para aumentar a espessura das bordas do box plot. Podemos personalizar as cores para diferentes categorias usando o parâmetro palette
. A orientação pode ser alterada usando o argumento orient
. Existem muitos outros argumentos desse tipo que podem ser usados.
Veja o código abaixo para entender a aplicação de alguns desses parâmetros.
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.DataFrame(
{
"Quantity": [5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8, 5, 6, 7, 8],
"Price": [9, 10, 15, 16, 13, 14, 15, 18, 11, 12, 14, 15, 16, 17, 18, 19],
"Day": [1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2],
"Product": [
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
"A",
"A",
"A",
"A",
"B",
"B",
"B",
"B",
],
}
)
sns.boxplot(
data=df, y="Price", x="Quantity", hue="Product", linewidth=2.5, palette="Set2"
)
Também podemos usar a função catplot()
para criar um gráfico de caixa. A função catplot()
funciona muito bem para traçar valores categóricos. Para criar um gráfico de caixa usando esta função, precisamos especificar o valor do parâmetro kind
na função catplot()
como box
.
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn