Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


r:ggplot2:grafici_serie_storiche

Questa è una vecchia versione del documento!


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

Messenger Telegram Email
r/ggplot2/grafici_serie_storiche.1754923068.txt.gz · Ultima modifica: 11/08/2025 14:37 da Agnese Vardanega