Vai al contenuto principale

Visualizzare i dati sul cambiamento climatico con ggplot2: tutorial passo dopo passo

Scopri come usare ggplot2 in R per creare visualizzazioni efficaci dei dati sul cambiamento climatico. Questo tutorial passo dopo passo ti insegna a trovare, analizzare e visualizzare dati meteorologici storici.
Aggiornato 29 set 2026  · 11 min leggi

Scopri con l'IA

ChatGPTClaudePerplexity

Questo tutorial è un prezioso contributo della nostra community ed è stato revisionato da DataCamp per chiarezza e accuratezza.

Ti va di condividere le tue competenze? Ci farebbe piacere sentirti! Invia i tuoi articoli o idee tramite il nostro modulo per i contributi della community.

"Il riscaldamento globale non è una previsione. Sta accadendo" - James Hansen

Il cambiamento climatico è un tema urgente che riguarda tutti noi e la visualizzazione dei dati può essere uno strumento potente per aumentare la consapevolezza. In questo tutorial passo dopo passo imparerai a usare ggplot2 in R per creare visualizzazioni efficaci dei dati climatici storici. Alla fine di questa guida saprai dove trovare dataset curati, come tracciare dati meteorologici storici e come personalizzare i grafici per raccontare una storia coinvolgente.

Il cambiamento climatico è un tema urgente che riguarda tutti noi e la visualizzazione dei dati può essere uno strumento potente per aumentare la consapevolezza. In questo tutorial passo dopo passo imparerai a usare ggplot2 in R per creare visualizzazioni efficaci dei dati climatici storici. Alla fine di questa guida saprai dove trovare dataset curati, come tracciare dati meteorologici storici e come personalizzare i grafici per raccontare una storia coinvolgente.

In questo tutorial imparerai dove trovare dati storici affidabili e curati sulle temperature e come visualizzarli con ggplot2.

  • Sapere dove trovare dataset curati con dati meteorologici storici;
  • Sentirti a tuo agio nel tracciare dati meteorologici storici con ggplot2;
  • Essere in grado di personalizzare i grafici ggplot2 per raccontare meglio la tua storia.

Passo 1: trovare e caricare i dati

I dati per questo tutorial sono disponibili presso i National Centers for Environmental Information (NCEI). L'NCEI è l'autorità di riferimento per i dati ambientali negli USA e fornisce dati di alta qualità su clima, ecosistemi e risorse idriche. Il dataset Global Summary of the Year (GSOY) offre dati meteorologici storici per città e stazioni. Per questo tutorial useremo i dati di Berkeley, CA. Se vuoi, puoi scegliere la città che preferisci.

I dati verranno caricati con read_csv. Il primo argomento è il percorso del file, mentre il secondo, col_select, indica a R quali colonne vuoi caricare. Tieni presente che questo dataset contiene diverse variabili, ma a noi interessano solo "DATE" e "TAVG". "DATE" contiene l'anno in cui è stata osservata la temperatura e "TAVG" è la temperatura media annua espressa in gradi Celsius. Per saperne di più sulle variabili disponibili, consulta il codebook del dataset.

library(readr)2​3df <- read_csv('USC00040693.csv',4            col_select = c("DATE", "TAVG"))5​Rows: 118 Columns: 2── Column specification ────────────────────────────────────────────────────────Delimiter: ","dbl (2): DATE, TAVG

Di seguito stamperai il dataset e le sue statistiche descrittive per farti un'idea iniziale dei dati. La funzione R summary() ci dice che i dati vanno dal 1893 al 2019 e che la temperatura media annua minima osservata in questo periodo a Berkeley, CA, è stata di 12,9 °C. La temperatura media massima è stata di 15,93 °C.

summary(df)      DATE           TAVG       Min.   :1893   Min.   :12.90   1st Qu.:1926   1st Qu.:13.50   Median :1956   Median :13.91   Mean   :1956   Mean   :13.97   3rd Qu.:1985   3rd Qu.:14.33   Max.   :2019   Max.   :15.93                  NA's   :33     

Passo 2: trattare i valori mancanti

La funzione summary() ha rivelato che ci sono 33 temperature mancanti. Puoi anche verificare gli NA di una specifica variabile usando la funzione is.na(), che restituisce TRUE se l'osservazione è un NA. Poi puoi sommare tutti i valori mancanti. La funzione sum() converte TRUE in 1.

print(paste("There are", sum(is.na(df$TAVG)), "missing values in this dataset."))[1] "There are 33 missing values in this dataset."

Dato che stiamo lavorando con una serie temporale, riempiremo i valori mancanti con un'interpolazione lineare. Questo metodo presume che i dati siano variati linearmente durante il periodo mancante. In realtà, quando tracci una serie temporale con un grafico a linee, anche gli intervalli tra le osservazioni, anche quando non mancano dati, vengono comunque uniti da una linea retta che collega i due punti.

Per eseguire l'interpolazione lineare useremo il pacchetto imputeTS. Dopo aver installato e caricato la libreria, puoi usare na_interpolation() per riempire i valori mancanti. Gli passi due argomenti: per primo, la colonna del dataframe che vuoi trattare, e per secondo, il metodo che desideri usare per l'imputazione.

install.packages("imputeTS", quiet = TRUE)
library(imputeTS)Registered S3 method overwritten by 'quantmod': method from as.zoo.data.frame zoo
df$TAVG <- na_interpolation(df$TAVG, option ="linear")

Passo 3: scrivere la prima versione del grafico

Una visualizzazione ggplot2 è costruita per layer. Come mostrato nella figura qui sotto, ogni layer contiene un oggetto geom, cioè un elemento che vedi nel grafico (per esempio linee e punti).

Per prima cosa devi passare un dataset alla funzione ggplot(). Poi mapperai le variabili alle estetiche, ovvero alle proprietà visive di un oggetto geom. Le estetiche sono, ad esempio, la posizione sull'asse y, la posizione sull'asse x, il colore o la dimensione. Per saperne di più su ggplot, dai un'occhiata al corso Introduction to Data Visualization with ggplot2 di Rick Scavetta, grazie al quale ho imparato molte competenze di data visualization.

Layer di ggplot2. Immagine creata dall'autore.

Qui sotto, il nostro mapping (aes()) dice a ggplot di rendere la posizione sull'asse x dipendente dalla variabile "DATE" e la posizione sull'asse y dipendente dalla temperatura. Nota che se tracci solo questo layer, ggplot mostrerà soltanto gli assi.

Inoltre, prima di iniziare a usare ggplot, imposteremo alcune configurazioni globali da applicare a tutti i grafici. La prima configurazione riguarda dimensioni e risoluzione del grafico. La seconda è il tema.

library(ggplot2)options(repr.plot.width = 10, repr.plot.height = 6, repr.plot.res = 150 )theme_set(theme_bw())
axes <- ggplot(data = df, aes(x = DATE, y = TAVG))axes

Ora puoi aggiungere un secondo layer con i punti che indicano le temperature nel tempo. Nota che puoi aggiungere il layer al grafico creato nel passaggio precedente.

dot_plot <- axes + geom_point()dot_plot

Infine, puoi aggiungere un terzo layer contenente le linee. È importante sottolineare che alcuni autori sostengono che le linee non rappresentino dati osservati e vadano usate con cautela. Per una discussione completa, consulta il capitolo 13 di Fundamentals of Data Visualization di Claus O. Wilke.

dot_plot +geom_line()

Passo 4: personalizzare il grafico

In questa sezione imparerai a personalizzare il grafico per renderlo chiaro, informativo e gradevole.

Per prima cosa, per rendere più visibile l'aumento della temperatura, mapperemo anche l'estetica del colore dei punti a "TAVG". Poiché è una variabile numerica, ggplot2 userà una sfumatura per rappresentare come colori i valori continui. Con la funzione scale_color_gradient() puoi scegliere quale colore rappresenterà le temperature basse e quale quelle alte.

Inoltre, puoi impostare le etichette degli assi x e y con xlab() e ylab(), rispettivamente. Un titolo può essere aggiunto con ggtitle(). Infine, aumenteremo la dimensione dei punti e aggiungeremo trasparenza per rendere visibili i dati sovrapposti.

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low = "#47BEFB", high = "#ED6AA8")+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")

Edward Tufte, esperto nel campo della visualizzazione dei dati, raccomanda di massimizzare la proporzione di inchiostro usata per mostrare dati non ridondanti. Secondo l'autore, questo rende il grafico più chiaro ed evita di distrarre chi legge.

Il tema di ggplot2 che stiamo usando (theme_bw()) è già in linea con le raccomandazioni di Tufte, ma potremmo comunque eliminare le griglie del pannello nel grafico qui sopra. Per farlo, usa la funzione theme() e passale due argomenti, panel.grid.minor = element_blank() e panel.grid.major = element_blank().

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low =  "#47BEFB", high = "#ED6AA8")+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme(# Eliminates grids:        panel.grid.minor = element_blank(),        panel.grid.major = element_blank())

Passo 5: creare un tema ggplot2 per la tua visualizzazione

Ora imparerai a creare un tuo tema ggplot2. Come esempio, creeremo un theme_datacamp() per rendere il grafico più coerente e armonioso con il sito di DataCamp.

Per prima cosa, è stata creata una lista con alcuni colori di DataCamp per un uso futuro.

datacamp_colors <- list(green = "#74F065",                         darkblue = "#05192D",                         blue = "#47BEFB",                         pink = "#ED6AA8")

In secondo luogo, caricheremo un Google Font chiamato "Manjari" da usare nel nostro tema. Puoi caricarlo facilmente con il pacchetto "showtext". Se non lo hai, installalo.

install.packages("showtext", quiet = TRUE)

Qui sotto carichiamo il pacchetto e usiamo la funzione font_add_google() per caricare "Manjari". Diciamo anche a R di renderizzare il testo usando "showtext" con showtext_auto():

library(showtext)font_add_google("Manjari")showtext_auto()Loading required package: sysfontsLoading required package: showtextdb

Ora useremo theme() per personalizzare il grafico. La figura qui sotto mostra alcuni degli argomenti che puoi usare. Per un elenco completo, consulta la documentazione di ggplot2.

 

Argomenti del tema. Immagine creata dall'autore.

Puoi creare un nuovo tema con una funzione che richiama la funzione theme() di ggplot2 contenente le tue specifiche personalizzate. Nota che partiamo dal tema in bianco e nero (theme_bw()) e poi eliminiamo le griglie e cambiamo i colori di sfondo, pannello e testo. Inoltre, viene aggiunto un margine di 0,5 cm al grafico. Per facilitare futuri cambiamenti, sono stati creati due argomenti per permettere all'utente di specificare i colori desiderati per testo, pannello e sfondo.

theme_datacamp <- function(text_panel_color, background_color) {  theme_bw()+  theme(text=element_text(size=28, family="Manjari", face = "bold", color = text_panel_color),    	# Eliminates grids        panel.grid.minor = element_blank(),        panel.grid.major = element_blank(),    	# Changes panel, plot and legend background to dark blue        panel.background = element_rect(fill = background_color),        plot.background = element_rect(fill =  background_color),        legend.background = element_rect(fill= background_color),        # Changes legend texts color to white        legend.text =  element_text(color = text_panel_color,                                     margin = margin(0, 0, 0, -0.5, "cm")),        legend.title = element_text(color = text_panel_color),        legend.text.align = 0,        # Changes color of plot border to white        panel.border = element_rect(size = 1, color = text_panel_color),        # Changes color of axis texts to white        axis.text.x = element_text(color = text_panel_color),        axis.text.y = element_text(color = text_panel_color),        axis.title.x = element_text(color= text_panel_color),        axis.title.y = element_text(color= text_panel_color),        # Changes axis ticks color to white        axis.ticks.y = element_line(color = text_panel_color),        axis.ticks.x = element_line(color = text_panel_color),        # Adds margin        plot.margin = margin(1, 1, 1, 1, "cm")  )}

Ora puoi semplicemente aggiungere theme_datacamp() al grafico specificando i colori che preferisci. Qui ho usato i colori di Datacamp:

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green,                background_color = datacamp_colors$darkblue)

Infine, puoi mostrare l'andamento della temperatura con uno smoother LOESS (locally estimated scatterplot smoothing), come raccomandato da Claus O. Wilke nel capitolo 14 di Fundamentals of Data Visualization. Puoi farlo aggiungendo un layer di ggplot contenente l'elemento geom_smooth().

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+geom_smooth(color = datacamp_colors$green, se = FALSE)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA",       subtitle = "Visualization using theme_datacamp()")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = datacamp_colors$green,                background_color = datacamp_colors$darkblue)

Sentiti libero di provare altre combinazioni di colori e font per ottenere le visualizzazioni più efficaci. Qui sotto, per esempio, cambio la curva LOESS, il pannello e il colore del testo in bianco.

ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+geom_point(size = 7, alpha = 0.8)+geom_smooth(color = "white", se = FALSE)+scale_color_gradient(name = "ºC", low = datacamp_colors$blue, high = datacamp_colors$pink)+ggtitle("Historical air temperature trend in Berkeley, CA",       subtitle = "Visualization using theme_datacamp()")+xlab("Year")+ylab("Annual Mean Temperature in Berkeley [ºC]")+theme_datacamp(text_panel_color = "white",                background_color = datacamp_colors$darkblue)

Conclusione

In questo tutorial hai imparato a usare ggplot2 in R per visualizzare efficacemente i dati climatici storici. Abbiamo coperto tutto, dal reperimento di dati affidabili alla creazione di un tema ggplot2 personalizzato, dandoti gli strumenti per aumentare la consapevolezza sul cambiamento climatico attraverso la visualizzazione dei dati.

Come prossimo passo, valuta di approfondire la visualizzazione dei dati e la programmazione in R con i corsi di DataCamp Introduction to Data Visualization with ggplot2 e Intermediate R. Questi corsi ti aiuteranno a sviluppare le competenze acquisite qui e a affrontare progetti più complessi.

Argomenti
R
Analisi dei dati
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