Barplot di Seaborn: Una Guida Completa

La visualizzazione dei dati trasforma informazioni complesse in insight chiari e utili. I barplot di Seaborn eccellono nel presentare dati categorici attraverso eleganti grafici statistici. La libreria combina la flessibilità di Matplotlib con la potenza di pandas, rendendola ideale sia per analisi veloci che per visualizzazioni pronte per la pubblicazione.

I barplot di Seaborn offrono funzionalità essenziali per l’analisi dei dati – dalle comparazioni di base alle rappresentazioni statistiche avanzate. Gestiscono compiti comuni come il confronto delle metriche di vendita tra le regioni, l’analisi delle risposte ai sondaggi e la visualizzazione dei risultati degli esperimenti.

La sintassi intuitiva della libreria e le funzioni statistiche integrate la rendono preziosa sia per i principianti che per i professionisti esperti dei dati.

In questo articolo, esamineremo le basi dei barplot di Seaborn, creando grafici di base con esempi di codice, migliorando i grafici attraverso la personalizzazione, implementando funzionalità avanzate ed esplorando applicazioni pratiche.

Per saperne di più sulla visualizzazione dei dati con Seaborn, dai un’occhiata al nostro Introduzione alla Visualizzazione dei Dati con Seaborn corso.

Concetti di base del grafico a barre di Seaborn

Prima di approfondire i barplot, diamo un’occhiata ad alcuni concetti fondamentali di Seaborn, ai suoi vantaggi per i grafici a barre e a come configurare l’ambiente di codifica.

Cos’è Seaborn?

Seaborn è una libreria di visualizzazione dei dati statistici in Python costruita sopra Matplotlib. Si specializza nella creazione di grafici statistici informativi e attraenti con un codice minimo. La libreria si integra strettamente con i DataFrame di pandas, rendendola particolarmente efficace per i flussi di lavoro di analisi dei dati.

Fornisce un’interfaccia di alto livello per disegnare grafici attraenti gestendo automaticamente molti dettagli dello stile.

La libreria eccelle in tre aspetti chiave:

  • Si integra perfettamente con i DataFrame di pandas, rendendo la manipolazione dei dati semplice
  • Viene fornito con funzioni statistiche integrate, eliminando la necessità di calcoli separati
  • Applica temi e palette di colori dall’aspetto professionale per impostazione predefinita

Ad esempio, mentre Matplotlib richiede diverse righe di codice per creare una visualizzazione statistica di base, Seaborn può compiere lo stesso compito con una singola chiamata di funzione.

Per i grafici a barre in particolare, Seaborn aggiunge funzionalità potenti come il calcolo automatico della media, gli intervalli di confidenza e la gestione avanzata delle variabili categoriali – capacità che richiederebbero un significativo codice aggiuntivo in Matplotlib base.

Perché utilizzare i grafici a barre?

I barplot presentano dati categorici attraverso barre verticali o orizzontali, dove la lunghezza rappresenta un valore numerico. Questo li rende ideali per confrontare valori tra diversi gruppi o categorie. Nell’analisi dei dati, i bar plot aiutano a visualizzare i risultati di un sondaggio, le quote di mercato, le metriche delle prestazioni e le distribuzioni delle vendite.

I vantaggi chiave includono:

  • Confronto chiaro delle quantità tra le categorie
  • Funzionalità statistiche integrate (media, mediana, intervalli di confidenza)
  • Rappresentazione efficace dei dati raggruppati
  • Elementi visivi semplici ma informativi
  • Opzioni di personalizzazione facili per presentazioni professionali

Configurazione rapida

Per iniziare a creare barplot con Seaborn, dovremo configurare il nostro ambiente Python. Ecco come cominciare:

Prima di tutto, installiamo i pacchetti richiesti come mostrato di seguito:

pip install seaborn pandas numpy

Ora abbiamo tutti gli strumenti di visualizzazione pronti per l’uso. Importiamo le librerie di cui avremo bisogno, come mostrato di seguito:

# Per creare visualizzazioni statistiche import seaborn as sns # Per la manipolazione e l'analisi dei dati import pandas as pd # Per le operazioni numeriche import numpy as np

Possiamo migliorare l’aspetto dei nostri grafici con alcune impostazioni di stile, come segue:

# Stile pulito bianco sns.set_style("white")

Lo stile white rimuove le linee della griglia e renderà i grafici ben visibili su quasi tutti gli schermi. Nelle prossime sezioni, vedremo come creare barplot e migliorarli.

Creazione di Barplot di Base con Seaborn

Un grafico a barre è perfetto per visualizzare le relazioni tra variabili categoriche e numeriche. Mostra stime puntuali (come media o mediana) e l’incertezza attorno a tali stime attraverso le barre di errore. Diamo uno sguardo alla sintassi di base del grafico a barre di seaborn.

Sintassi e parametri

Il sns.barplot() in Seaborn fornisce un modo diretto per creare grafici a barre statistici. La struttura di base della funzione .barplot() è la seguente:

sns.barplot( data=None, # Your DataFrame x=None, # Category variable y=None, # Numeric variable estimator='mean', # Statistical function to estimate errorbar=('ci', 95), # Error bars type and level orient=None # "v" for vertical, "h" for horizontal )

Questi parametri ci danno il controllo su quali dati visualizzare e come visualizzarli. Il parametro data prende il tuo DataFrame, mentre x e y specificano quali colonne utilizzare per le categorie e i valori. L’estimator ti permette di scegliere quale funzione statistica applicare (media per impostazione predefinita), e errorbar controlla come viene visualizzata l’incertezza. Puoi anche passare tra orientamenti verticale ed orizzontale utilizzando il parametro orient.

Ora, vediamo come creare grafici a barre efficaci utilizzando il dataset di esempi integrato di Seaborn, che contiene informazioni sui conti e le mance dei ristoranti.

Esempio: Visualizzazione di un dataset semplice

Esamineremo il comportamento delle mance nei diversi giorni della settimana utilizzando il dataset delle mance. Questo dataset contiene informazioni sui conti dei ristoranti, inclusi il giorno della settimana, l’importo totale del conto, l’importo della mancia e altre variabili.

# Importa le librerie necessarie e carica il dataset import seaborn as sns tips = sns.load_dataset("tips") # Crea un grafico a barre di base che mostra le mance medie per giorno sns.barplot(data=tips, x="day", y="tip")

Output:

Il nostro codice ha creato la visualizzazione sopra dove ogni barra rappresenta l’importo medio della mancia per un giorno diverso della settimana. L’altezza di ogni barra mostra il valore medio della mancia, mentre le linee nere (barre di errore) indicano l’intervallo di confidenza al 95% – fornendoci informazioni sia sull’importo tipico della mancia che su quanto varia.

Possiamo anche esaminare i modelli di mance in diversi orari dei pasti:

# Crea un grafico a barre che mostra le mance medie per periodo della giornata sns.barplot(data=tips, x="time", y="tip")

Output:

Questo grafico rivela la differenza nel comportamento delle mance tra il servizio del pranzo e della cena. L’altezza di ciascuna barra rappresenta l’importo medio della mancia per quel momento della giornata, con le barre d’errore che mostrano la variabilità nel comportamento delle mance. Questo tipo di visualizzazione rende facile individuare pattern e confrontare gruppi in un colpo d’occhio.

Questi semplici grafici a barre forniscono una base per visualizzazioni più complesse. Nella prossima sezione, vedremo come migliorare questi grafici con colori, raggruppamenti e altre personalizzazioni per creare visualizzazioni più informative e accattivanti.

Migliorare i Grafici a Barre con Personalizzazioni

Aggiungere miglioramenti visivi ai nostri grafici a barre può aiutare a rendere i nostri dati più coinvolgenti e più facili da capire. Vediamo i diversi modi per personalizzare i grafici a barre utilizzando il dataset delle mance.

Aggiunta di colori ai grafici a barre

Seaborn offre diversi modi per aggiungere colore ai tuoi grafici a barre, rendendoli più accattivanti e informativi. Possiamo utilizzare un singolo colore per tutte le barre o creare gruppi con codice colore,

Il parametro color imposta un singolo colore per tutte le barre, mentre il palette ti permette di specificare uno schema di colori quando i tuoi dati hanno più gruppi. Seaborn include molte palette di colori predefinite che funzionano bene per diversi tipi di dati.

È possibile creare un semplice barplot con un singolo colore utilizzando il parametro color come mostrato di seguito:

# Carica il dataset tips se non lo hai già fatto import seaborn as sns tips = sns.load_dataset("tips") # Barplot con un solo colore sns.barplot(data=tips, x="day", y="tip", color="skyblue")

Output:

È possibile creare un barplot con più colori utilizzando il parametro palette come mostrato di seguito:

# Carica il dataset tips se non lo hai già fatto import seaborn as sns tips = sns.load_dataset("tips") # Utilizzando una diversa palette di colori sns.barplot(data=tips, x="day", y="tip", palette="Set2")

Output:

Barplot di Seaborn con colonne multiple

Una delle funzionalità più potenti dei barplot di Seaborn è la capacità di mostrare le relazioni tra più variabili utilizzando il parametro hue. Ciò crea barre raggruppate che facilitano i confronti.

Confrontiamo i suggerimenti tra entrambi i giorni e gli orari dei pasti utilizzando il parametro hue come mostrato di seguito:

# Carica il dataset dei suggerimenti se non l'hai già fatto import seaborn as sns tips = sns.load_dataset("tips") # Crea un barplot raggruppato che mostra i suggerimenti per giorno e ora sns.barplot( data=tips, x="day", y="tip", hue="time" )

Output:

Il grafico sopra mostra due barre – una per il pranzo e una per la cena. Questo raggruppamento ci aiuta a vedere non solo come variano i suggerimenti per giorno, ma anche come differiscono tra i vari orari dei pasti.

Creazione di un barplot a barre sovrapposte di seaborn

I barplot a barre sovrapposte sono eccellenti per mostrare la composizione di diverse categorie. Sebbene Seaborn non abbia una funzione diretta per i barplot a barre sovrapposte, possiamo combinarla con matplotlib per creare visualizzazioni sovrapposte efficaci.

Questo approccio sfrutta la funzionalità statistica di Seaborn utilizzando le capacità di sovrapposizione di matplotlib. Ad esempio, nel dataset dei suggerimenti, vediamo come i suggerimenti sono distribuiti tra fumatori e non fumatori nei diversi giorni.

Cominciamo importando le librerie necessarie per la nostra visualizzazione:

# Importa le librerie richieste import seaborn as sns import matplotlib.pyplot as plt import numpy as np

Ora caricheremo il nostro dataset contenente le informazioni sui suggerimenti dei ristoranti:

# Carica il dataset dei suggerimenti tips = sns.load_dataset("tips")

Creeremo una figura con dimensioni appropriate per la nostra visualizzazione:

# Crea figura e asse plt.figure(figsize=(10, 4))

Successivamente, calcoleremo le mance medie per fumatori e non fumatori in diversi giorni:

# Calcola i valori per l'impilamento # Filtra i fumatori, raggruppa per giorno e ottieni le mance medie smoker_means = tips[tips['smoker']=='Yes'].groupby('day')['tip'].mean() # Filtra i non fumatori, raggruppa per giorno e ottieni le mance medie non_smoker_means = tips[tips['smoker']=='No'].groupby('day')['tip'].mean()

Prossimamente, configureremo i parametri di base per i nostri diagrammi a barre impilate come mostrato di seguito:

# Traccia le barre impilate usando matplotlib days = smoker_means.index width = 0.8

Ora, creeremo lo strato inferiore delle nostre barre impilate per i non fumatori:

# Crea barre inferiori (non fumatori) plt.bar(days, non_smoker_means, width, label='Non-smoker', color=sns.color_palette()[0])

Aggiungeremo lo strato superiore per le mance dei fumatori:

# Crea barre superiori (fumatori) plt.bar(days, smoker_means, width, bottom=non_smoker_means, label='Smoker', color=sns.color_palette()[1])

Impostiamo uno stile pulito senza linee guida utilizzando lo stile di Seaborn:

# Aggiungi lo stile di Seaborn sns.set_style("white")

Infine, visualizzeremo il nostro diagramma a barre impilate completato:

# Mostra il grafico plt.show()

Output:

Il grafico risultante mostra le mance medie dei fumatori impilate sopra le mance dei non fumatori per ogni giorno, rendendo facile confrontare sia le mance totali che il contributo di ciascun gruppo.

Questo workaround ci consente di:

  • Mantenere lo stile visivo attraente di Seaborn
  • Impilare le nostre barre per mostrare la composizione
  • Mantenere la natura statistica della nostra visualizzazione
  • Utilizzare le palette di colori di Seaborn per coerenza

Funzionalità avanzate e suggerimenti

Ora che abbiamo coperto le basi e le personalizzazioni, vediamo alcune funzionalità avanzate che possono rendere i nostri grafici a barre più informativi e professionali. Continueremo a utilizzare il dataset dei suggerimenti per dimostrare queste tecniche avanzate.

Annotare i grafici a barre

Aggiungere etichette di valore alle barre può rendere le vostre visualizzazioni più precise e informative. Creiamo un grafico a barre che mostri i valori esatti dei suggerimenti sopra ogni barra.

Prima, importiamo le nostre librerie e prepariamo i nostri dati:

# Importa le librerie richieste import seaborn as sns import matplotlib.pyplot as plt # Carica e prepara il dataset dei suggerimenti tips = sns.load_dataset("tips")

Crea il nostro grafico a barre con valori statistici:

# Crea il grafico a barre di base ax = sns.barplot(data=tips, x="day", y="tip”, errorbar=None) # Create barplot and store the axes object for annotations

Successivamente, aggiungeremo etichette di valore in cima a ciascuna barra, come mostrato di seguito:

# Ottieni l'altezza di ciascuna barra bars = ax.containers[0] # Get the bar container object heights = [bar.get_height() for bar in bars] # Extract height of each bar # Aggiungi annotazioni di testo in cima a ciascuna barra for bar, height in zip(bars, heights): # Loop through bars and heights together ax.text( bar.get_x() + bar.get_width()/2., # X position (center of bar) height, # Y position (top of bar) f'${height:.2f}', # Text (format as currency) ha='center', # Horizontal alignment va='bottom' # Vertical alignment )

Output:

Gestione degli assi e delle scale

Nella creazione dei grafici a barre, regolare gli assi aiuta a rendere i dati più leggibili e incisivi. Vediamo come personalizzare i limiti degli assi, le etichette e i ticks utilizzando le funzioni di Seaborn.

Prima, importeremo la nostra libreria e caricheremo il dataset di cui abbiamo bisogno per la nostra visualizzazione:

# Importa le librerie richieste import seaborn as sns # Carica e prepara il dataset dei suggerimenti tips = sns.load_dataset("tips")

Possiamo creare un grafico a barre con etichette personalizzate e ordine dei giorni. Il parametro order ci permette di specificare esattamente come vogliamo che i giorni siano disposti sull’asse x:

# Crea un grafico a barre con etichette degli assi ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', ‘Fri', 'Sun'] # Set custom order for days )

Per rendere il nostro grafico più informativo, possiamo aggiungere etichette descrittive per entrambi gli assi utilizzando il metodo set:

# Imposta etichette descrittive degli assi ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' )

Per ottimizzare la nostra visualizzazione, possiamo impostare limiti e segni specifici. Il parametro ylim controlla l’intervallo dell’asse y, mentre xticks e yticks ci permettono di definire esattamente dove vogliamo che compaiano i segni di spunta:

# Personalizza limiti e segni degli assi ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

Per incorporare tutte queste modifiche nel grafico, dobbiamo eseguirle tutte in una volta e non una per volta. Di seguito è mostrato l’intero codice:

# Importa le librerie richieste import seaborn as sns # Carica e prepara il dataset dei consigli tips = sns.load_dataset("tips") # Crea un grafico a barre con etichette degli assi ax = sns.barplot( data=tips, x="day", y="tip", order=['Thur', 'Sat', 'Fri', 'Sun'] # Set custom order for days ) # Imposta etichette descrittive degli assi ax.set( xlabel='Day of Week', ylabel='Average Tip ($)' ) # Personalizza limiti e tick degli assi ax.set( ylim=(0, 5), # Set y-axis range from 0 to 5 xticks=range(4), # Set x-axis tick positions yticks=[0, 1, 2, 3, 4, 5] # Set specific y-axis tick values )

Output:

Il grafico risultante mostra i consigli per giorno con etichette chiare, scale appropriate e segni di divisione degli assi ben organizzati, rendendo facile leggere e interpretare i dati.

Incorporazione delle barre di errore

Le barre di errore aiutano a visualizzare l’incertezza o la variabilità nei tuoi dati. Seaborn offre diverse opzioni per aggiungere barre di errore ai tuoi grafici a barre, inclusi gli intervalli di confidenza e la deviazione standard.

Per prima cosa, importeremo la nostra libreria e caricheremo il dataset di cui abbiamo bisogno per la nostra visualizzazione:

# Importare le librerie richieste import seaborn as sns # Caricare e preparare il dataset dei suggerimenti tips = sns.load_dataset("tips")

Per impostazione predefinita, Seaborn mostra intervalli di confidenza al 95%. Possiamo modificarlo utilizzando il parametro ‘errorbar’ per mostrare diversi tipi di stime statistiche:

# Creare un barplot con intervalli di confidenza ax = sns.barplot( data=tips, x="day", y="tip", errorbar="ci", # Show confidence interval capsize=0.1 # Add small caps to error bars )

Output:

Possiamo anche mostrare la deviazione standard invece degli intervalli di confidenza, il che aiuta a visualizzare la dispersione dei nostri dati:

# Passare alla deviazione standard ax = sns.barplot( data=tips, x="day", y="tip", errorbar="sd", # Show standard deviation capsize=0.1 # Add small caps to error bars )

Output:

A volte potremmo voler rimuovere completamente le barre di errore per un aspetto più pulito:

# Crea un barplot senza barre di errore ax = sns.barplot( data=tips, x="day", y="tip", errorbar=None # Remove error bars )

Output:

I grafici risultanti mostrano come diversi tipi di barre di errore possano aiutarci a comprendere la variabilità nei nostri dati sui suggerimenti nei diversi giorni della settimana.

Applicazioni pratiche dei barplot di Seaborn

I barplot sono strumenti versatili nella visualizzazione dei dati, particolarmente utili quando è necessario confrontare i valori tra diverse categorie o analizzare contemporaneamente più variabili. Vediamo due applicazioni comuni in cui i barplot di Seaborn eccellono.

I barplot di Seaborn eccellono nel rivelare pattern nei dati categorici, in particolare nell’analisi di metriche tra diversi gruppi. Mostrando sia la tendenza centrale che l’incertezza, i barplot aiutano a identificare differenze significative tra le categorie.

Questo li rende ideali per analizzare il comportamento dei clienti, le prestazioni dei prodotti o le risposte ai sondaggi in cui è necessario confrontare i valori tra gruppi distinti.

Confronto di più variabili

Quando la nostra analisi coinvolge più fattori, i barplot di Seaborn possono mettere in evidenza relazioni complesse nei nostri dati. Utilizzando funzionalità come il raggruppamento (hue) o lo stack, è possibile confrontare diverse variabili contemporaneamente, facilitando lindividuazione di modelli e interazioni tra diversi aspetti dei nostri dati.

Conclusione

I barplot di Seaborn colpiscono il giusto equilibrio tra semplicità e insight statistico. La sintassi intuitiva della libreria combinata con robuste funzionalità statistiche la rende uno strumento essenziale per la visualizzazione dei dati. Dai confronti di base tra categorie alle visualizzazioni raggruppate avanzate, i barplot aiutano a scoprire e comunicare in modo efficace i pattern dei dati.

Pronto a migliorare le tue abilità di visualizzazione dei dati? Ecco cosa esplorare successivamente:

Vuoi portare le tue competenze di Seaborn al livello successivo? Iscriviti al Corso di Visualizzazione Dati Intermedia con Seaborn.

Source:
https://www.datacamp.com/tutorial/seaborn-barplot