Seaborn BoxPlot

Manav Narula 20 novembro 2021
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.

Informação do box plot

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)

boxplot para variável única

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")

stripplot em boxplot

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")

boxplot para dados categóricos

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"
)

gráfico de caixa para várias colunas com argumentos

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 Narula avatar Manav Narula avatar

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