Series temporales interactivas en R con dygraphs

Librería

dygraphs

La función dygraph

El paquete dygraphs permite crear gráficos de series temporales interactivos en R basados en la librería de JavaScript dygraphs. Los gráficos muestran los valores al pasar el ratón por encima y permiten hacer zoom seleccionando un área con el ratón (haz doble clic para restablecer el zoom).

La función dygraph recibe un objeto de serie temporal, como un objeto ts o xts. En este tutorial vamos a utilizar el conjunto de datos ldeaths, que contiene las muertes mensuales por enfermedades pulmonares en Reino Unido entre 1974 y 1979.

# install.packages("dygraphs")
library(dygraphs)

dygraph(ldeaths)

Selector de rango

La función dyRangeSelector añade un selector de rango debajo del gráfico, que permite seleccionar el periodo a mostrar arrastrando sus extremos. Puedes establecer el periodo inicial con el argumento dateWindow, como dateWindow = c("1976-01-01", "1978-12-01").

dygraph(ldeaths) |>
  dyRangeSelector()

Varias series

Si pasas un objeto con varias series temporales se dibujará una línea para cada una. En este ejemplo unimos las muertes de hombres (mdeaths) y mujeres (fdeaths) con cbind. Los colores se establecen con el argumento colors de dyOptions.

muertes <- cbind(Hombres = mdeaths, Mujeres = fdeaths)

dygraph(muertes) |>
  dyOptions(colors = c("#118AB2", "#EF476F"))

Relleno, puntos y estilo de línea

dyOptions también permite rellenar el área bajo las líneas con fillGraph = TRUE (estableciendo su transparencia con fillAlpha), añadir puntos con drawPoints y pointSize, crear gráficos escalonados con stepPlot = TRUE o cambiar el grosor de las líneas con strokeWidth.

dygraph(muertes) |>
  dyOptions(colors = c("#118AB2", "#EF476F"),
            fillGraph = TRUE, fillAlpha = 0.2,
            drawPoints = TRUE, pointSize = 2)

Título y ejes

El título del gráfico y los títulos de los ejes se establecen con los argumentos main, xlab e ylab de dygraph. La función dyAxis permite personalizar cada eje, por ejemplo, estableciendo sus límites con valueRange.

dygraph(muertes,
        main = "Muertes por enfermedades pulmonares en Reino Unido",
        ylab = "Muertes") |>
  dyAxis("y", valueRange = c(0, 3500)) |>
  dyOptions(colors = c("#118AB2", "#EF476F"))

Sombreado y eventos

Usa dyShading para resaltar un periodo de tiempo, indicando sus fechas de inicio y fin con from y to, y dyEvent para añadir una línea vertical con una etiqueta en una fecha concreta. Estas funciones son útiles para marcar periodos como recesiones o acontecimientos importantes.

dygraph(ldeaths) |>
  dyShading(from = "1976-01-01", to = "1976-12-01", color = "#FFE6A7") |>
  dyEvent("1978-01-01", "Evento", labelLoc = "bottom") |>
  dyOptions(colors = "#073B4C")

Resaltar series

Cuando se muestran varias series, la función dyHighlight resalta la serie que está bajo el ratón. highlightSeriesBackgroundAlpha establece la transparencia del resto de series y highlightCircleSize el tamaño del punto. Pasa el ratón por encima del gráfico para ver el efecto.

dygraph(muertes) |>
  dyOptions(colors = c("#118AB2", "#EF476F")) |>
  dyHighlight(highlightSeriesBackgroundAlpha = 0.2,
              highlightCircleSize = 4)

Media móvil

La función dyRoller suaviza la serie con una media móvil del número de periodos indicado con rollPeriod. Además, añade un cuadro en la esquina inferior izquierda del gráfico donde puedes cambiar el número de periodos.

dygraph(ldeaths) |>
  dyRoller(rollPeriod = 6) |>
  dyOptions(colors = "#06D6A0")

Si prefieres gráficos estáticos puedes representar series temporales en ggplot2 y convertirlas en gráficos interactivos con ggplotly. Para datos financieros también puedes crear un gráfico de velas.

MASTER - STATISTICS DOT COM

Master Statistics

Aprende estadística desde lo básico hasta técnicas avanzadas, explicado con claridad

Ir al sitio
R PACKAGES IO

R Packages

Explora y descubre miles de paquetes, funciones y datasets de R

Ir al sitio

También te puede interesar