CodeGym /Corsi /Python SELF IT /Creazione di istogrammi per visualizzare la distribuzione...

Creazione di istogrammi per visualizzare la distribuzione dei dati

Python SELF IT
Livello 41 , Lezione 3
Disponibile

1. Basi della creazione di istogrammi

Se hai mai guardato un tavolo di buffet cercando di decidere quale tipo di snack prevale, hai già un po' di idea su cosa significa distribuzione dei dati. Nella programmazione, usiamo gli istogrammi per individuare schemi nei dati che potrebbero non essere evidenti a prima vista. Gli istogrammi aiutano a analizzare visivamente come i dati sono distribuiti in certe categorie o intervalli numerici. Iniziamo!

Cos'è un istogramma?

Un istogramma è un tipo di grafico che aiuta a visualizzare la distribuzione dei dati in certi intervalli o "bin" (a volte chiamati "contenitori" o "secchi"). Ad esempio, se vogliamo sapere quante volte gli studenti hanno ottenuto un certo punteggio in un test, un istogramma è il modo migliore per mostrarlo.

Parametri principali di un istogramma

Un istogramma è composto da colonne (bin), dove ogni colonna mostra quanti valori rientrano nell'intervallo corrispondente. I parametri principali di un istogramma sono:

  • Bin (bins): il numero di intervalli in cui suddividere il range dei dati.
  • Colore e bordo (color e edgecolor): determinano l'aspetto delle colonne.
  • Range (range): specifica i valori minimo e massimo da visualizzare.
  • Densità (density): se impostato su True, l'istogramma sarà normalizzato, in modo che l'area totale delle colonne sia uguale a uno.

Uso della funzione hist() per creare istogrammi

La libreria Matplotlib ha una fantastica funzione hist() che rende la creazione di istogrammi super semplice. Ecco un esempio base:

Python

import matplotlib.pyplot as plt
import numpy as np

# Creiamo un set di dati
data = np.random.normal(0, 1, 1000)

# Creiamo un istogramma
plt.hist(data, bins=30, alpha=0.7, color='blue')
plt.title('Istogramma della distribuzione dei dati')
plt.xlabel('Valori')
plt.ylabel('Frequenza')
plt.show()

Qui generiamo un set di dati usando la funzione np.random.normal(), che crea una distribuzione normale. Dividiamo i dati in 30 bin e impostiamo la trasparenza delle colonne con il parametro alpha per una migliore visualizzazione.

2. Configurazione dei bin e aspetto del grafico

Definizione del numero e delle dimensioni dei bin

La quantità e la dimensione dei bin possono influenzare significativamente l'interpretazione dell'istogramma. Bin troppo grandi possono nascondere dettagli importanti, mentre bin troppo piccoli possono rendere il grafico confuso e difficile da interpretare.

Esempio pratico:

Python

# Modifica del numero e della dimensione dei bin
plt.hist(data, bins=10, color='green', edgecolor='black')
plt.title('Istogramma con 10 bin')
plt.xlabel('Valori')
plt.ylabel('Frequenza')
plt.show()

plt.hist(data, bins=50, color='red', edgecolor='black')
plt.title('Istogramma con 50 bin')
plt.xlabel('Valori')
plt.ylabel('Frequenza')
plt.show()

Guarda come cambia l'aspetto dell'istogramma usando 10 e 50 bin. Noti la differenza? È proprio uno di quei casi in cui le dimensioni contano!

Esempi pratici di modifica dei parametri dell'istogramma

Gli istogrammi possono essere personalizzati non solo per il numero di bin, ma anche per colore, trasparenza e persino per lo stile delle colonne. Ecco altri esempi:

Python

# Altri parametri di configurazione
plt.hist(data, bins=30, density=True, color='purple', edgecolor='white', linestyle='dashed')
plt.title('Istogramma di densità con stile modificato')
plt.xlabel('Valori')
plt.ylabel('Densità')
plt.grid(True)
plt.show()

In questo esempio abbiamo aggiunto il parametro density=True, che normalizza l'istogramma in modo che l'area sotto il grafico sia pari a 1. Questo può essere utile quando si vuole analizzare la densità di probabilità della distribuzione.

3. Esempi di utilizzo degli istogrammi

Gli istogrammi trovano il loro impiego in una vasta gamma di settori — dall'analisi dei dati finanziari agli esperimenti in fisica. Vediamo come usare un istogramma con un set di dati reale.

Creazione di un istogramma su un set di dati reale

Immagina di avere un set di dati che rappresenta la temperatura media giornaliera per un anno. Vogliamo analizzare con quale frequenza la temperatura rientra in un certo intervallo.

Python

# Set di dati sulle temperature (semplificato per l'esempio)
temperatures = [15, 16, 15, 14, 19, 22, 24, 25, 17, 18, 15, 16, 23, 24, 21, 19, 18, 20, 22, 25, 26, 27]

# Creazione di istogramma
plt.hist(temperatures, bins=5, color='navy', edgecolor='black')
plt.title('Istogramma delle temperature')
plt.xlabel('Temperatura (°C)')
plt.ylabel('Frequenza')
plt.show()

In questo esempio abbiamo usato 5 bin per determinare come sono distribuiti i valori. L'istogramma mostra che la maggior parte delle temperature rientra nell'intervallo tra 15 e 20 °C.

Confronto di distribuzioni su un unico istogramma

A volte è necessario confrontare la distribuzione di più set di dati su un unico istogramma. In Matplotlib è possibile sovrapporre più istogrammi usando il parametro alpha (trasparenza).

Esempio 3: Confronto di distribuzioni

Python

import matplotlib.pyplot as plt

# Generazione dei dati
data1 = [5, 10, 10, 15, 15, 20, 25, 30, 30, 35, 40]
data2 = [5, 7, 9, 10, 11, 13, 15, 17, 19, 20, 25]

# Creazione di istogrammi sovrapposti
plt.hist(data1, bins=5, color="blue", alpha=0.5, label="Set 1")
plt.hist(data2, bins=5, color="green", alpha=0.5, label="Set 2")
plt.xlabel("Valore")
plt.ylabel("Frequenza")
plt.title("Confronto di due distribuzioni")
plt.legend()
plt.show()

In questo esempio utilizziamo il parametro alpha=0.5 per ogni istogramma, il che rende le colonne semi-trasparenti e consente di confrontare visivamente le sovrapposizioni tra distribuzioni.

Consigli utili per lavorare con gli istogrammi

  • Scelta ottimale del numero di bin: Scegli il numero di bin in base al volume e alla natura dei dati. Troppi pochi o troppi bin potrebbero distorcere la distribuzione.
  • Confronto di distribuzioni: Usa la trasparenza (alpha) per sovrapporre più istogrammi e confrontare le distribuzioni.
  • Aggiunta di una griglia: Una griglia aiuta a interpretare meglio i dati. Puoi aggiungerla con la funzione plt.grid(True).
  • Parametro density: Usa density=True per mostrare i dati come densità di probabilità, utile soprattutto per confrontare distribuzioni.
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION