Vai al contenuto principale

Palette di colori Seaborn: guida rapida alla scelta dei colori

Usa color_palette() per separare chiaramente le categorie, cubehelix_palette() per dati sequenziali con progressione graduale e diverging_palette() per una chiara divergenza dal punto medio.
· 4 min leggi

Scopri con l'IA

Nella visualizzazione dei dati, scegliere i colori giusti può essere importante quanto selezionare il tipo di grafico o la rappresentazione corretta. Per fortuna, con Seaborn in Python è facile trovare la palette giusta. Continua a leggere per capire come creare visualizzazioni non solo informative, ma anche d’impatto e accessibili.

Se sei alle prime armi con Python, valuta di iniziare dal corso Introduction to Python o dallo skill track Python Programming. Queste risorse ti daranno le competenze necessarie per seguire gli esempi e sfruttare al meglio le potenzialità di Seaborn.

Nota rapida sulle basi del colore

Tre elementi definiscono qualsiasi colore: tonalità (hue), saturazione e valore (value). Ognuno è importante perché veicola tipi di informazione diversi.

Hue

La tonalità è ciò che in genere intendiamo per "colore": è il colore puro, come rosso, blu o verde.

Illustrazione della tonalità. Immagine dell’autore.

Questa figura mostra tonalità diverse, che attraversano la ruota dei colori dal rosso al viola. Tonalità differenti sono utili per rappresentare dati categoriali o per evidenziare elementi specifici. Per esempio, puoi usare tonalità distinte per distinguere categorie non correlate in un bar chart o in uno scatter plot.

Saturation

La saturazione indica l’intensità o la purezza di un colore. Un colore completamente saturo è vivido, mentre uno meno saturo appare più smorzato o grigiastro.

Illustrazione della saturazione. Immagine dell’autore.

Questo gradiente mostra livelli di saturazione diversi per una singola tonalità. Il colore a destra è completamente saturo. Spostandoci a sinistra, il colore è via via meno saturo, fino a sembrare quasi grigio. Colori più saturi possono attirare l’attenzione su punti chiave o aree di interesse.

Value

Il valore, noto anche come luminosità, indica la chiarezza o l’oscurità di un colore. Aggiungere bianco aumenta il valore, mentre aggiungere nero lo diminuisce.

Illustrazione del valore (luminosità). Immagine dell’autore.

Questo gradiente mostra livelli di luminosità diversi per la stessa tonalità. A destra vediamo il colore alla massima luminosità. Spostandoci a sinistra, il valore diminuisce e il colore diventa più scuro. Il valore è utile per mostrare progressioni o gerarchie nei dati. Per esempio, puoi usare un gradiente di valore in una heatmap per rappresentare l’intensità dei dati su una griglia bidimensionale.

Tipi di palette di colori in Seaborn

Vediamo i tre principali tipi di palette in Seaborn: qualitative, sequenziali e divergenti.

Palette qualitative con color_palette()

Le palette qualitative sono pensate per dati categoriali in cui non c’è un ordine o una relazione intrinseca tra le categorie. Usano tonalità distinte per differenziarle.

Palette qualitativa. Immagine dell’autore.

La palette "Bright" mostrata sopra è un esempio di palette qualitativa integrata in Seaborn. Usa tonalità vivide e distinte per separare le categorie. I colori sono facilmente distinguibili, il che la rende ideale per dati categoriali in cui non esiste un ordine o una relazione intrinseca tra le categorie.

La funzione color_palette() è il modo di Seaborn per creare palette personalizzate. Ti permette di passare da un tipo di palette all’altro cambiando il nome della palette e il numero di colori. Quando usi palette denominate (come "pastel" o "Blues"), il parametro number determina quanti colori visualizzare. In genere, il numero di colori si allinea al numero di categorie dei tuoi dati o crea un gradiente con un numero specifico di passaggi.

Per un controllo ancora più preciso, puoi usare codici HEX per definire esattamente i colori. È particolarmente utile quando devi rispettare i colori di un brand o creare una combinazione cromatica non disponibile tra quelle integrate. Ecco come creare diversi tipi di palette con color_palette():

import seaborn as sns
# Create a qualitative palette with 4 colors
qual_palette = sns.color_palette("pastel", 4)

Creare una palette qualitativa con quattro colori. Immagine dell’autore.

# Create a sequential palette with 6 colors
seq_palette = sns.color_palette("Blues", 6)

Creare una palette sequenziale con sei colori. Immagine dell’autore.

# Create a diverging palette with 12 colors
div_palette = sns.color_palette("RdBu", 12)

Creare una palette divergente con 12 colori. Immagine dell’autore.

# Create a custom palette using HEX codes 
hex = sns.color_palette(["#FF6B6B", "#4ECDC4", "#45B7D1","#FAD02E", "#594F4F"])

Creare una palette personalizzata con codici HEX. Immagine dell’autore.

Palette sequenziali con cubehelix_palette()  

Le palette sequenziali sono ideali per dati numerici con un ordinamento naturale. Mostrano una progressione da valori bassi ad alti, in genere variando la luminosità e/o la saturazione di una singola tonalità o di più tonalità.

Illustrazione della palette sequenziale Viridis. Immagine dell’autore.

La palette "Viridis" mostra una progressione dal viola scuro al giallo brillante. Questo tipo di palette è adatto a mostrare un intervallo di valori da basso ad alto. È particolarmente utile per visualizzare dati continui come intervalli di temperatura, densità di popolazione o qualsiasi dataset in cui vuoi evidenziare una chiara relazione basso-alto. Altre opzioni integrate includono: ‘Blues’, ‘Greens’, ‘Reds’, ‘YlOrBr’ e ‘rocket’.

La funzione cubehelix_palette() consente di creare palette sequenziali con un controllo fine su luminosità e progressione del colore. È particolarmente utile quando serve una palette che aumenti gradualmente in luminosità e vari leggermente in tonalità. Ecco i parametri di personalizzazione:

  • n_colors: il numero di colori nella palette.

  • start: la posizione iniziale nel ciclo dei colori (0-3).

  • rot: determina quanto cambia la tonalità. 

  • dark: il colore più scuro della palette.

  • light: il colore più chiaro della palette.

  • reverse: se invertire la direzione della palette.

import seaborn as sns
# Create a default cubehelix palette
default_cube = sns.cubehelix_palette(8)

Illustrazione della palette cubehelix predefinita. Immagine dell’autore.

# Create a custom cubehelix palette
custom_cube = sns.cubehelix_palette(8, start=.5, rot=-.75, dark=.3, light=.8)

Illustrazione di una palette cubehelix personalizzata. Immagine dell’autore.

# Create a reversed cubehelix palette
reversed_cube = sns.cubehelix_palette(8, start=2, rot=0, dark=0, light=.95, reverse=True)

Illustrazione di una palette cubehelix invertita. Immagine dell’autore.

Palette divergenti con diverging_palette()

Le palette divergenti sono pensate per dati con un punto medio significativo o zero. Evidenziano la divergenza da un punto centrale usando due tonalità contrastanti, che diventano più sature man mano che i valori si allontanano dal centro. 

Illustrazione di una palette divergente. Immagine dell’autore.

L’esempio sopra mostra chiaramente come queste palette evidenziano la divergenza da un punto centrale. La palette passa da blu freddi, attraverso un bianco neutro, fino a rossi caldi, con un punto medio evidente. Questo tipo di palette può essere usato per visualizzare anomalie di temperatura (dove 0 rappresenta la media) o scenari di profitto/perdita in ambito finanziario. Altre opzioni integrate includono: 'RdBu', 'RdYlGn' e 'PiYG'. Vediamo i parametri:

  • h_neg e h_pos: le tonalità per gli estremi negativo e positivo della palette.

  • n: il numero di colori nella palette.

  • s: la saturazione dei colori.

  • l: la luminosità dei colori.

  • center: il colore del punto centrale ('light' o 'dark').

import seaborn as sns
# Create a default diverging palette
default_div = sns.diverging_palette(220, 20, n=7)

Illustrazione di una palette divergente predefinita. Immagine dell’autore.

# Create a diverging palette with more saturation
saturated_div = sns.diverging_palette(250, 30, l=65, s=75, n=7)

Palette divergente con maggiore saturazione. Immagine dell’autore.

# Create a diverging palette with a darker center
dark_center_div = sns.diverging_palette(150, 275, s=80, l=55, n=9, center="dark")

Palette divergente con centro più scuro. Immagine dell’autore.

Nota finale sulle palette di colori Seaborn

Scegliere la palette giusta è fondamentale per creare visualizzazioni efficaci. Le opzioni di palette di Seaborn, diversificate e personalizzabili, sono strumenti potenti per migliorare chiarezza e impatto delle tue rappresentazioni dei dati.

Mentre applichi questi concetti ai tuoi progetti di data visualization e cerchi di migliorare le tue competenze, considera percorsi di apprendimento completi come il career track Python Developer o Data Analyst with Python. Questi percorsi orientati alla carriera sono pensati per portarti dai concetti di base ad applicazioni più avanzate, e capire come realizzare buone visualizzazioni è sempre importante.

Vinod Chugani

Autore

Vinod Chugani

Vinod Chugani ha iniziato la sua carriera a Tokyo come il più giovane Head dell'Hedge Fund Sales Desk di JPMorgan e in seguito ha stabilito un record personale di vendite a Lehman Brothers, poi ha costruito un'attività di distribuzione di elettronica in 30 paesi superando i 100 milioni di SG$ di fatturato prima di passare ai dati. Laureato in Economia alla Duke e diplomato alla NYC Data Science Academy, è stato uno dei tre beneficiari di borsa di studio su oltre 100 candidati per il corso Building AI Applications di Hugo Bowne-Anderson su Maven. Oggi scrive per DataCamp, KDnuggets, Machine Learning Mastery e Statology su argomenti che vanno dalla statistica all'AI agentica, e fa da mentor a professionisti dei dati alla NYC Data Science Academy con oltre 1.000 sessioni one-to-one all'attivo.

 

FAQ sulle palette di colori Seaborn

Quali sono i diversi tipi di palette di colori disponibili in Seaborn?

Seaborn offre tre principali tipi di palette di colori: qualitative, sequenziali e divergenti. Le palette qualitative sono ideali per dati categoriali, quelle sequenziali per dati numerici con un ordinamento naturale e quelle divergenti per dati con un punto medio significativo.

Come posso creare una palette di colori personalizzata in Seaborn?

Puoi usare la funzione color_palette() per creare palette personalizzate, inclusi i tipi qualitativi, sequenziali e divergenti. Consente anche di selezionare colori specifici tramite codici HEX per un controllo preciso.

Quando dovrei usare cubehelix_palette() in Seaborn?

La funzione cubehelix_palette() è utile per creare palette sequenziali con una progressione cromatica fluida, soprattutto quando ti serve un controllo fine su luminosità e variazione del colore.

Qual è lo scopo di usare diverging_palette() nella visualizzazione dei dati?

La funzione diverging_palette() è pensata per dati con un punto medio significativo, come profitto/perdita o anomalie di temperatura. Usa tonalità a contrasto per mostrare la divergenza dal centro, aiutando a enfatizzare le deviazioni.

Cosa sono hue, saturation e value nella scelta dei colori?

La tonalità (hue) rappresenta il colore puro, come rosso o blu; la saturazione indica l’intensità del colore, da vivido a smorzato; e il valore (value), detto anche luminosità, definisce quanto il colore è chiaro o scuro. Capire questi elementi aiuta a scegliere colori efficaci per visualizzare diversi tipi di dati.

 

Argomenti

Correlato