Seaborn Bar e Stacked Bar Plots

Manav Narula 20 giugno 2021
Seaborn Bar e Stacked Bar Plots

Un grafico a barre viene utilizzato per rappresentare i valori osservati in barre rettangolari. Il modulo seaborn in Python usa la funzione seaborn.barplot() per creare grafici a barre.

Vedere il codice seguente per creare un semplice grafico a barre per il prezzo di un prodotto in giorni diversi.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {"Price 1": [7, 1, 5, 6, 3, 10, 5, 8], "Day": [1, 2, 3, 4, 5, 6, 7, 8]}
)

s1 = sns.barplot(x="Day", y="Price 1", data=df, color="red")

barplot impilato di seaborn 1

In questo tutorial impareremo come creare grafici a barre impilate in Seaborn.

Quando parliamo di grafici a barre in pila, ciò che intendiamo è che abbiamo due o più serie di osservazioni rappresentate sullo stesso grafico. Ciò conferisce al grafico complessivo un aspetto impilato, con una serie di osservazioni posizionate sulla seconda serie.

Non abbiamo una funzione che possa creare direttamente tali grafici a barre impilati, ma possiamo usare il metodo tradizionale seaborn.barplot() per tracciare due grafici a barre individuali e posizionarli entrambi uno sopra l’altro.

Implementiamo questa logica nel codice seguente.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Price 1": [7, 1, 5, 6, 3, 10, 5, 8],
        "Price 2": [1, 2, 8, 4, 3, 9, 5, 2],
        "Day": [1, 2, 3, 4, 5, 6, 7, 8],
    }
)

s1 = sns.barplot(x="Day", y="Price 1", data=df, color="red")

s2 = sns.barplot(x="Day", y="Price 2", data=df, color="blue")

Seaborn stacked barplot 2

Nel grafico sopra, abbiamo tracciato il prezzo di due materie prime in giorni diversi su un grafico a barre.

Se vogliamo, possiamo rappresentare un insieme di osservazioni per valori categoriali sullo stesso grafico a barre. Il risultato finale non sarà quello di uno sguardo impilato, ma rappresenterà le osservazioni sullo stesso grafico su più barre.

Vedere il codice seguente.

import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.DataFrame(
    {
        "Price": [7, 1, 5, 6, 3, 10, 5, 8],
        "Product": ["C1", "C2", "C1", "C2", "C1", "C2", "C1", "C2"],
        "Day": [1, 1, 2, 2, 3, 3, 4, 4],
    }
)

s = sns.barplot(x="Day", y="Price", data=df, hue="Product")

Seaborn stacked barplot 3

Siamo stati in grado di tracciare il prezzo per 2 prodotti in 4 giorni diversi sullo stesso grafico. Diamo agli assi x e y il valore desiderato per il grafico a barre e utilizziamo il parametro hue per raggruppare le osservazioni per diverse categorie, in modo tale da creare barre diverse sullo stesso grafico. In questo modo, l’output finale è molto più pulito e tutto viene eseguito utilizzando una sola funzione.

Autore: Manav Narula
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