Ricerca Sociale con R

Una wiki per l'analisi dei dati con R

Strumenti Utente

Strumenti Sito


Il Laboratorio di Analisi dei Dati con R, dell'Università di Teramo su piattaforma Meet, inizia il 9 aprile 2021 - Iscrizione - email
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()
&nolink |

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()
&nolink |

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
&nolink |

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 - sistema_di_riferimento

r/ggplot2/grafici_serie_storiche.txt · Ultima modifica: 14/09/2020 11:32 da admin