Vai al contenuto principale

Tutorial sugli istogrammi in R: crea e personalizza grafici con R base

Impara a creare e personalizzare istogrammi in R base usando la funzione hist(). Copre colori, etichette, classi, curve di densità e statistiche descrittive.
Aggiornato 29 set 2026  · 10 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

In questo tutorial ti guiderò nella creazione e personalizzazione degli istogrammi nel linguaggio di programmazione R. Vedremo cos’è un istogramma, come preparare i dati, come costruire un istogramma di base e come modificare colori, etichette, classi (bins) e limiti degli assi. 

Useremo il linguaggio R base senza pacchetti aggiuntivi. Questo approccio è particolarmente utile quando non si possono usare pacchetti extra o quando cerchi analisi esplorative rapide. In altri casi, potresti considerare l’uso di ggplot2, come spiegato nel nostro tutorial How to Make a ggplot2 Histogram in R.

TL;DR

  • Usa hist(x) per creare un istogramma di base in R base senza pacchetti extra

  • Personalizza l’aspetto con col (colore di riempimento), border (contorno), main (titolo), xlab e ylab

  • Controlla il raggruppamento in classi con l’argomento breaks: passa un numero, un vettore di punti di taglio o un nome di metodo ("Sturges", "Scott", "Freedman-Diaconis")

  • Sovrapponi statistiche descrittive usando abline() per la media e lines(density()) per una curva di densità

  • Per istogrammi raggruppati o di qualità da pubblicazione, passa a ggplot2

Cos’è un istogramma?

Un istogramma è un grafico che mostra le distribuzioni di frequenza su variabili continue (numeriche). Gli istogrammi ci permettono di vedere il conteggio delle osservazioni all’interno degli intervalli coperti dalla variabile.

Gli istogrammi assomigliano ai grafici a barre. Una differenza chiave è che i grafici a barre associano un valore a una specifica categoria o variabile discreta, mentre un istogramma visualizza le frequenze per variabili continue. 

Preparare i dati per gli istogrammi

Useremo questo dataset immobiliare che include dettagli su diversi annunci di case, come la dimensione dell’abitazione, il numero di stanze, il prezzo e informazioni sulla posizione. Possiamo leggere i dati usando la funzione read.csv(), direttamente dall’URL oppure scaricando il file csv in una cartella e leggendolo dall’archivio locale. Possiamo anche specificare di voler salvare solo le colonne che ci interessano per questo tutorial: price e condition.

home_data <- read.csv("https://raw.githubusercontent.com/rashida048/Datasets/master/home_data.csv")[ ,c('price', 'condition')]

Diamo un’occhiata alle prime righe dei dati usando la funzione head().

head(home_data, 5)

Prime righe del dataset immobiliare con le colonne price e condition in R

Creare istogrammi con R base

Ora creeremo un istogramma usando la funzione hist() per osservare la distribuzione dei prezzi nel nostro dataset.

hist(home_data$price)

Creare un istogramma dei prezzi delle case in R base

Istogramma di base dei prezzi delle case. Immagine dell’autore.

Aggiungere statistiche descrittive

Possiamo aggiungere statistiche descrittive all’istogramma usando la funzione abline(). Questa aggiunge una linea verticale al grafico.

  • Imposta l’argomento v alla posizione sull’asse x per la linea verticale. Qui otteniamo il prezzo medio delle case usando mean().

  • L’argomento col imposta il colore della linea, in questo caso rosso.

  • L’argomento lwd imposta lo spessore della linea. Un valore pari a 3 aumenta lo spessore per renderla più visibile.

hist(home_data$price)

abline(v = mean(home_data$price), col='red', lwd = 3)

Tracciare le densità di probabilità

Per aggiungere una linea di densità di probabilità all’istogramma, innanzitutto cambiamo l’asse y in densità. Nella chiamata a hist(), impostiamo l’argomento probability a TRUE.

La linea di densità è creata combinando density(), che calcola la posizione della curva di densità di probabilità, e lines(), che aggiunge la linea al grafico esistente.

hist(home_data$price, probability = TRUE)
abline(v = mean(home_data$price), col='red', lwd = 3)
lines(density(home_data$price), col = 'green', lwd = 3)

Istogramma in R base dei prezzi delle case con la media evidenziata
Istogramma dei prezzi delle case con la media evidenziata. Immagine dell’autore.

Nota che i numeri sull’asse y sono cambiati.

Personalizzare il colore

Il parametro col di hist() imposta il colore di riempimento delle barre, mentre border imposta il colore del contorno. Qui imposto il riempimento a blu e i bordi a bianco.

hist(home_data$price, col = 'blue', border = "white")

Istogramma in R base dei prezzi delle case con colore aggiuntoIstogramma dei prezzi delle case con colore aggiunto. Immagine dell’autore.

Aggiungere etichette e titoli

Possiamo modificare le etichette del grafico per renderlo più leggibile e presentabile. È utile se condividi il grafico con altri.

  • xlab imposta l’etichetta dell’asse x

  • ylab imposta l’etichetta dell’asse y

  • main imposta il titolo del grafico

hist(home_data$price, xlab = 'Price (USD)', ylab = 'Number of Listings', main = 'Distribution of House Prices')

Istogramma in R base con etichette degli assi aggiunteIstogramma dei prezzi delle case con etichette degli assi. Immagine dell’autore.

Definire le classi con breaks

Con gli argomenti predefiniti, è difficile vedere l’intera distribuzione dei prezzi delle case sull’intero range. Si vede che sono concentrati nelle prime classi, ma non sono molto descrittive. 

Possiamo aggiungere più classi usando il parametro breaks. Con questo argomento possiamo passare un vettore di specifici punti di taglio da usare, una funzione per calcolarli, un numero di classi desiderato o una funzione per calcolare il numero di celle. 

In questo esempio passeremo il numero di classi desiderato. Questo numero dipende dal contesto, in base a ciò che vuoi mostrare nel grafico.

hist(home_data$price, breaks = 100)

Istogramma in R base con ampiezza delle classi modificataIstogramma dei prezzi delle case con ampiezza delle classi modificata. Immagine dell’autore.

Con breaks impostato a 100, abbiamo molta più visibilità sulla distribuzione nelle prime classi. 

Possiamo anche specificare il numero di classi usando i nomi di metodi comuni per calcolare i breaks ottimali in un istogramma. Per impostazione predefinita, hist() usa il metodo “Sturges”. Qui specifichiamo esplicitamente il metodo.

hist(home_data$price, breaks = "Sturges")

Istogramma in R base con metodo SturgesIstogramma dei prezzi delle case con metodo Sturges. Immagine dell’autore.

Possiamo anche passare “Scott” come argomento per l’attributo breaks per usare il metodo di Scott. 

hist(home_data$price, breaks = "Scott")

Istogramma in R base con metodo Scott
Istogramma dei prezzi delle case con metodo Scott. Immagine dell’autore.

Infine, possiamo anche usare il metodo di Freedman-Diaconis (FD). 

hist(home_data$price, breaks = "Freedman-Diaconis")

Istogramma in R base con metodo Freedman-DiaconisIstogramma dei prezzi delle case con metodo Freedman-Diaconis. Immagine dell’autore.

Confrontare i metodi di breaks

La tabella seguente riassume i tre metodi nominati per i breaks disponibili in hist(). Il predefinito è Sturges.

Metodo Come funziona Ideale per
Sturges Classi = 1 + log₂(n). Presuppone dati approssimativamente normali. Dataset piccoli o medi con distribuzioni quasi normali
Scott Ampiezza classe = 3,49 × sd × n⁻¹ᐟ³. Minimizza l’errore quadratico medio integrato. Dati normalmente distribuiti in cui la varianza è importante
Freedman-Diaconis Ampiezza classe = 2 × IQR × n⁻¹ᐟ³. Usa l’intervallo interquartile invece della deviazione standard. Dati asimmetrici o distribuzioni con outlier

Impostare i limiti degli assi

Possiamo impostare i limiti dell’asse x del grafico usando l’argomento xlim per fare zoom sui dati che ci interessano. Ad esempio, a volte è utile concentrarsi sulla parte centrale della distribuzione, invece della lunga coda che vediamo osservando l’intero grafico. 

È possibile anche cambiare i limiti dell’asse y (usando l’argomento ylim), ma è meno utile per gli istogrammi perché i valori calcolati automaticamente sono quasi sempre ideali.

Faremo zoom sui prezzi tra $0 e $2M.

hist(home_data$price, breaks = 100, xlim = c(0, 2000000))

Istogramma in R base dei prezzi delle case con zoom nell’intervallo 0-2 milioni di dollariIstogramma dei prezzi delle case con limiti degli assi modificati. Immagine dell’autore.

Prossimi passi nella visualizzazione con istogrammi

Man mano che prendi dimestichezza con R, puoi provare pacchetti di visualizzazione dedicati che offrono maggior controllo su estetica, layout e interattività. Una libreria molto popolare e facile da usare per i grafici in R è ggplot2. Qui sotto creiamo una vista interessante delle distribuzioni dei prezzi in base al numero di camere da letto della casa.  


Istogramma con facet dei prezzi delle case per numero di camere da letto usando ggplot2 in RIstogramma dei prezzi delle case con ggplot2. Immagine dell’autore.

ggplot2 è il pacchetto di visualizzazione più usato in R. Puoi imparare a creare istogrammi con esso nel nostro tutorial How to Make a ggplot2 Histogram in R, oppure esplorare il tutorial Graphics with ggplot2 per un’introduzione più ampia. Dai un’occhiata anche ai nostri corsi Introduction to ggplot2 course e Intermediate ggplot2 course per approfondire. 

Considerazioni finali

In questo tutorial abbiamo visto che gli istogrammi sono ottime visualizzazioni per analizzare le distribuzioni di variabili continue. Abbiamo imparato a creare un istogramma in R, a tracciare statistiche riassuntive sopra l’istogramma, a personalizzare elementi del grafico come titoli degli assi, colori, il modo in cui segmentiamo l’asse x e come impostare i limiti degli assi. Infine, abbiamo mostrato parte della potenza della libreria ggplot2.

Per ulteriori letture e risorse su DataCamp, dai un’occhiata ai nostri corsi interattivi: 


Author
Kevin Babitz
LinkedIn

Autrice di Data Science | Senior Technical Marketing Analyst presso Wayfair | MSE in Data Science all'Università della Pennsylvania

Argomenti
R
Data Visualization
Analisi dei dati

Impara R con DataCamp

Corso

Introduzione alla visualizzazione dei dati con ggplot2

4 ore
191.2K
Impara a creare visualizzazioni di dati significative e belle con ggplot2 capendo la grammatica della grafica.
Vedi i dettagliRight Arrow
Inizia Il Corso
Mostra altroRight Arrow
Correlato

blog

Che cos'è Snowflake? Guida per principianti alla piattaforma dati cloud

Esplora le basi di Snowflake, la piattaforma dati cloud. Scopri la sua architettura, le sue funzionalità e come integrarla nelle tue pipeline di dati.
Tim Lu's photo

Tim Lu

12 min

blog

Tokenizzazione nel NLP: come funziona, sfide e casi d'uso

Guida al preprocessing NLP nel machine learning. Copriamo spaCy, i transformer di Hugging Face e come funziona la tokenizzazione in casi d'uso reali.
Abid Ali Awan's photo

Abid Ali Awan

10 min

blog

I 15 migliori server MCP remoti che ogni AI builder dovrebbe conoscere nel 2026

Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Mostra AltroMostra Altro