Cómo trazar una serie de tiempo en R (con ejemplos)

A menudo, es posible que desee trazar una serie de tiempo en R para visualizar cómo cambian los valores de la serie de tiempo con el tiempo.

Este tutorial explica cómo hacerlo rápidamente usando la biblioteca de visualización de datos ggplot2 .

Gráfica básica de series de tiempo en R

Supongamos que tenemos el siguiente conjunto de datos en R:

#create dataset 
df <- data.frame (date = as . Date (" 2021-01-01 ") - 0:99,
                 ventas = runif (100, 10, 500) + seq (50, 149) ^ 2)

#ver las primeras seis filas del
 encabezado (df)

        ventas de fecha
1 2021-01-01 2845.506
2 2020-12-31 2837.849
3 2020-12-30 3115.517
4 2020-12-29 2847.161
5 2020-12-28 3374.619
6 2020-12-27 3182.005

Podemos usar el siguiente código para crear una gráfica de serie de tiempo básica para este conjunto de datos usando ggplot2:

biblioteca (ggplot2)

#create time series plot 
p <- ggplot (df, aes (x = date, y = sales)) +
       geom_line ()

#display trama de serie temporal
pag

Gráfico de series de tiempo básico en R

Dar formato a las fechas en el eje X

Podemos usar la función scale_x_date () * para formatear las fechas que se muestran a lo largo del eje x del gráfico. Esta función toma los siguientes argumentos:

  • % d: día como un número entre 0 y 31
  • % a: día de la semana abreviado (p. ej., «martes»)
  • % A: día de la semana no abreviado (p. Ej., «Martes»)
  • % m : mes entre 0 y 12
  • % b: mes abreviado (p. ej., «enero»)
  • % B: mes sin abreviar (p. Ej., «Enero»)
  • % y: año de 2 dígitos (p. ej., «21»)
  • % Y: año de 4 dígitos (p. Ej., «2021»)
  • % W: Semana del año entre 0 y 52

* Para que esta función funcione, la variable del eje x debe ser una variable de fecha. Si aún no lo es, puede convertirlo rápidamente en uno usando as.Date ( variable_name) .

El siguiente código muestra cómo utilizar uno de estos formatos en la práctica:

p + scale_x_date ( date_labels = " % b% Y ")

Gráfico de series de tiempo con fechas personalizadas en R

También puede agregar descansos más frecuentes (o poco frecuentes) a lo largo del eje x utilizando el argumento date_breaks . Por ejemplo, podríamos mostrar las fechas de cada dos semanas a lo largo del eje x:

p + scale_x_date ( date_breaks = " 2 semanas ")

Series de tiempo con saltos de fecha en el eje x en R

También podemos inclinar fácilmente las etiquetas del eje x utilizando el siguiente argumento:

p + tema ( axis.text.x = element_text (ángulo = 50 , hjust = 1 ))

Incline las etiquetas del eje x en ggplot2

Por último, podemos cambiar el tema, las etiquetas de los ejes y el título para hacer que la trama de la serie temporal sea más atractiva visualmente:

p <- ggplot (df, aes (x = fecha, y = ventas)) +
       geom_line ( color = " turquoise4 ") +
       theme_minimal () + 
       laboratorios (x = "", y = " Ventas ", título = " Ventas totales (últimos 100 días) ") +
       tema ( plot.title = element_text (hjust = 0.5, size = 20, face = " negrita "))

pag

Serie temporal con tema ggplot personalizado en R

Recursos adicionales

Una guía completa de los mejores temas de ggplot2
La guía completa de títulos de ggplot2
Cómo crear gráficos en paralelo en ggplot2

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Redactor del artículo

  • Luis Benites
    Director de Statologos.com

    Tengo una Maestría en Ciencias en Estadística Aplicada y he trabajado en algoritmos de aprendizaje automático para empresas profesionales tanto en el sector de la salud como en el comercio minorista.

    Ver todas las entradas

¿Te hemos ayudado?

Ayudanos ahora tú, dejanos un comentario de agradecimiento, nos ayuda a motivarnos y si te es viable puedes hacer una donación:

La ayuda no cuesta nada

Por otro lado te rogamos que compartas nuestro sitio con tus amigos, compañeros de clase y colegas, la educación de calidad y gratuita debe ser difundida, recuerdalo:

Deja un comentario

La función cbind en R, abreviatura de column-bind , se puede usar para combinar vectores, matrices y marcos de datos…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!