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