Trama dello sciame di Seaborn
Un grafico a dispersione è uno dei grafici più semplici e utili utilizzati. Il modulo Seaborn in Python può fare un passo avanti con questi grafici e usarli per rappresentare valori categoriali.
Un grafico a sciame è un tipo di grafico a dispersione utilizzato per rappresentare i valori categoriali. È molto simile al grafico a strisce, ma evita la sovrapposizione dei punti. Possiamo usare seaborn.swarmplot()
per creare tali grafici.
Non è consigliabile utilizzare questo tipo di grafico quando la dimensione del campione è grande.
Useremo la funzione swarmplot()
per creare un tale grafico per i valori categoriali nel codice seguente.
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")
Nell’esempio sopra, possiamo aggiungere il parametro hue
alla funzione swarmplot()
e separare le categorie per i due diversi prodotti. Possiamo dividere i due prodotti usando l’argomento dodge
e impostandolo su True.
Inoltre, possiamo usare altri argomenti anche con la funzione swarmplot()
. La dimensione e il colore dei punti possono essere modificati utilizzando gli argomenti size
e color
. Possiamo modificare la combinazione di colori utilizzata per diverse categorie utilizzando il parametro palette
. L’argomento linewidth
aggiunge un bordo ai punti della larghezza specificata. L’ordine delle categorie tracciate può essere controllato utilizzando il parametro order
.
Cercheremo di utilizzare gli argomenti di cui sopra nell’esempio seguente.
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,
)
Lo swarmplot()
può anche essere usato come un buon complimento su una trama di scatole o violini. Dà una buona idea della distribuzione dei dati.
Possiamo aggiungere un box plot sopra lo swarm plot usando il seguente codice.
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")
La funzione catplot()
può anche creare un tale swarm plot. Per questo, dobbiamo specificare il valore per il parametro kind
nella funzione catplot()
come 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