Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:ggplot2:grafici_serie_storiche

Rappresentare le serie storiche

Oggetti ‘ts’ con ggfortify

Per rappresentare graficamente le serie storiche con ggplot2 (e più in generale per lavorare con le serie storiche e i pacchetti del tidyverse), è necessario ricorrere alle funzioni del pacchetto ggfortify:

install.packages("ggfortify")
library(ggfortify)
  library(tidyverse)

Utilizziamo la funzione autoplot():

AirPassengers %>% 
  autoplot()

Oggetti ‘data.frame’ con geom_line()

Le serie storiche in formato di dataframe, invece, possono essere rappresentate direttamente con geom_line().

Trasformiamo la serie in dataframe, con una funzione di ggfortify:

ts.df <- fortify(AirPassengers,
        index.name = "Date", data.name = "Passengers")
 
head(ts.df)
##         Date Passengers
## 1 1949-01-01        112
## 2 1949-02-01        118
## 3 1949-03-01        132
## 4 1949-04-01        129
## 5 1949-05-01        121
## 6 1949-06-01        135
ts.df %>% 
  ggplot(aes(x = Date, y = Passengers)) +
  geom_line()

Rappresentare il tempo sull’asse delle ascisse

Intanto, come esempio di personalizzazione, modifichiamo il tema predefinito e cambiamo i caratteri base del grafico:

# fonts
library(extrafont)
 
# impostazioni del tema
theme_set(theme_minimal() +
            theme(text = element_text(family = "Open Sans")))

Vedi: I temi predefiniti (ggplot2)

Per cambiare la rappresentazione della data, possiamo usare la funzione:

  scale_x_date()
ts.df %>% 
  ggplot(aes(x = Date, y = Passengers)) +
  geom_line(size = 1,
            linetype = "dotted",
            col = "blue") +
  scale_x_date(date_breaks = "1 year",     # intervalli
               date_labels = "%Y")         # formato delle etichette

Per avere una scala triennale:

  scale_x_date(date_breaks = "3 years",
               date_labels = "%Y")

Per ottenere un risultato analogo con autoplot():

AirPassengers %>% 
  autoplot(ts.size = 1,
           ts.linetype = "dotted",
           ts.col = "blue") +
  scale_x_date(date_breaks = "1 year",
               date_labels = "%Y") +
  labs(y = "Passengers", x = "Date")

Vedi:

- grafici_a_linee - Assi e unità di misura (ggplot2)

Domande? Scrivimi

su Telegram per email
r/ggplot2/grafici_serie_storiche.txt · Ultima modifica: 05/09/2025 16:48 da Agnese Vardanega