Seaborn Swarmplot
Um gráfico de dispersão é um dos gráficos mais básicos e úteis usados. O módulo marítimo em Python pode levar esses gráficos um passo adiante e usá-los para representar valores categóricos.
Um gráfico de enxame é um tipo de gráfico de dispersão usado para representar valores categóricos. É muito semelhante ao strip plot, mas evita a sobreposição de pontos. Podemos usar o seaborn.swarmplot()
para criar esses gráficos.
Não é aconselhável usar este tipo de gráfico quando o tamanho da amostra for grande.
Usaremos a função swarmplot()
para criar tal gráfico para valores categóricos no código a seguir.
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.swarmplot(data=df, y="Price", x="Quantity")
No exemplo acima, podemos adicionar o parâmetro hue
à função swarmplot()
e separar as categorias para os dois produtos diferentes. Podemos dividir os dois produtos usando o argumento dodge
e definindo-o como True.
Além disso, podemos usar alguns outros argumentos também com a função swarmplot()
. O tamanho e a cor dos pontos podem ser alterados usando os argumentos size
e color
. Podemos alterar a combinação de cores usada para diferentes categorias usando o parâmetro palette
. O argumento linewidth
adiciona uma borda aos pontos da largura especificada. A ordem das categorias plotadas pode ser controlada usando o parâmetro order
.
Tentaremos usar os argumentos acima no exemplo a seguir.
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.swarmplot(
data=df,
y="Price",
x="Quantity",
hue="Product",
dodge=True,
linewidth=2.5,
palette="Set2",
size=10,
)
O swarmplot()
também pode ser usado como um bom elogio sobre um enredo de caixa ou violino. Dá uma boa ideia da distribuição dos dados.
Podemos adicionar um gráfico de caixa sobre o gráfico de enxame usando o código a seguir.
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.swarmplot(n, color="red")
A função catplot()
também pode criar um gráfico de enxame. Para isso, precisamos especificar o valor do parâmetro kind
na função catplot()
como swarm
.
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