ggplot2 - Serie temporal
Una serie de tiempo es un gráfico que representa la serie de puntos de datos en un orden de tiempo específico. Una serie de tiempo es una secuencia tomada con una secuencia en puntos sucesivos de igual espaciado. Las series de tiempo se pueden considerar como datos de tiempo discreto. El conjunto de datos que usaremos en este capítulo es el conjunto de datos de “economía” que incluye todos los detalles de las series de tiempo económicas de EE. UU.
El marco de datos incluye los siguientes atributos que se mencionan a continuación:
Fecha | Mes de recopilación de datos |
Psavert | Tasa de ahorro personal |
Pce | Gasto de consumo personal |
Desempleo | Número de desempleados en miles |
Unempmed | Duración media del desempleo |
Popular | Población total en miles |
Cargue los paquetes necesarios y configure el tema predeterminado para crear una serie de tiempo.
> library(ggplot2)
> theme_set(theme_minimal())
> # Demo dataset
> head(economics)
# A tibble: 6 x 6
date pce pop psavert uempmed unemploy
<date> <dbl> <dbl> <dbl> <dbl> <dbl>
1 1967-07-01 507. 198712 12.6 4.5 2944
2 1967-08-01 510. 198911 12.6 4.7 2945
3 1967-09-01 516. 199113 11.9 4.6 2958
4 1967-10-01 512. 199311 12.9 4.9 3143
5 1967-11-01 517. 199498 12.8 4.7 3066
6 1967-12-01 525. 199657 11.8 4.8 3018
Cree una gráfica de línea básica que cree una estructura de serie de tiempo.
> # Basic line plot
> ggplot(data = economics, aes(x = date, y = pop))+
+ geom_line(color = "#00AFBB", size = 2)
Podemos trazar el subconjunto de datos usando el siguiente comando:
> # Plot a subset of the data
> ss <- subset(economics, date > as.Date("2006-1-1"))
> ggplot(data = ss, aes(x = date, y = pop)) +
+ geom_line(color = "#FC4E07", size = 2)
Creación de series de tiempo
Aquí trazaremos las variables psavert y uempmed por fechas. Aquí debemos remodelar los datos usando el paquete tidyr. Esto se puede lograr colapsando los valores psavert y uempmed en la misma columna (nueva columna). Función R: recopilar () [tidyr]. El siguiente paso consiste en crear una variable de agrupación que con niveles = psavert y uempmed.
> library(tidyr)
> library(dplyr)
Attaching package: ‘dplyr’
The following object is masked from ‘package:ggplot2’: vars
The following objects are masked from ‘package:stats’: filter, lag
The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union
> df <- economics %>%
+ select(date, psavert, uempmed) %>%
+ gather(key = "variable", value = "value", -date)
> head(df, 3)
# A tibble: 3 x 3
date variable value
<date> <chr> <dbl>
1 1967-07-01 psavert 12.6
2 1967-08-01 psavert 12.6
3 1967-09-01 psavert 11.9
Cree un gráfico de varias líneas con el siguiente comando para ver la relación entre "psavert" y "unmpmed":
> ggplot(df, aes(x = date, y = value)) +
+ geom_line(aes(color = variable), size = 1) +
+ scale_color_manual(values = c("#00AFBB", "#E7B800")) +
+ theme_minimal()