Dibuja una línea vertical al eje X de la fecha de la clase en ggplot2 Traza en R

En este artículo, veremos cómo dibujar una línea vertical al eje X de la fecha de clase en ggplot2 Plot en el lenguaje de programación R. Aquí estamos usando Scatter Plot, puede dibujar cualquier gráfico según sus requisitos.

Primero, cargue el paquete ggplot2 usando la función library() . Ahora crearemos un DataFrame con dos vectores para los ejes X e Y respectivamente. Aquí use una secuencia de fechas desde el principio hasta el final como valor del eje X de la gráfica. Para eso tenemos que usar funciones de R como “seq()” y “as.Date()”. La función seq() genera una secuencia de fechas.

Sintaxis: seq(…, longitud, por)

Parámetros:

  • Generalmente, la función seq tiene muchos parámetros, pero aquí usamos solo los parámetros requeridos de estos.
  • … : argumentos pasados ​​para ser secuenciados. aquí queremos secuenciar fechas. Para que usemos la función as.Date() como primer parámetro de seq.
  • length : longitud deseada de la secuencia. aquí queremos 60 meses de fechas. Entonces le damos el valor 60 al parámetro de longitud.
  • por : incremento de secuencia. aquí damos el valor ‘1 mes’ por parámetro para incrementar las fechas en 1 mes.

Retorno: secuencias regulares según los argumentos dados.

La función as.Date() convierte los objetos asignados en ella a la clase «Fecha» que representa las fechas del calendario.

Sintaxis: as.Date(x, origen)

Parámetros: 

  • x : Un objeto a convertir. esto es necesario para asignar a as.Date . si no tenemos ningún objeto para convertir, podemos usar ‘0’ como valor.
  • origen: un objeto ‘Fecha’

Retorno: Un objeto de clase ‘Fecha’

Ahora, para crear un diagrama R, usamos la función ggplot() y, para convertirlo en un diagrama de dispersión, agregamos la función geom_point() a la función ggplot(). 

Primero visualicémoslo normalmente, para que la diferencia sea evidente.

Ejemplo:

R

# Load Packages
library("ggplot2")
 
# Create DataFrame for plotting with Date class.
data <- data.frame(X_dates = seq(as.Date(0, origin = "2000-01-01"),
                                 length = 60, by = "1 month"),
                   Y_Values = sample(1:100, 60, replace = TRUE))
 
# Create Scatter Plot by using ggplot2
simplePlot <- ggplot(data, aes(X_dates, Y_Values))+
  geom_point(fill = "green", size = 5, color = "black", shape = 21)
simplePlot

Producción:

ScatterPlot using ggplot2

Diagrama de dispersión usando ggplot2

Ahora, para dibujar una línea vertical al eje X de la fecha de clase, tenemos que definir el rango de fechas desde las que queremos dibujar líneas verticales. Para eso, creamos el objeto «date_range» y le asignamos un rango de fechas. Aquí, elegimos el rango de fechas usando la función as.Date() y seleccionamos las fechas de los valores del eje X usando la función which(). La función which() devuelve el índice del valor que satisface la condición dada.

Sintaxis: cual(x)

Parámetro:

  • which() tiene principalmente tres parámetros x, arr, ind y useNames, pero solo ‘x’ es necesario para usar. Aquí no hemos utilizado otros dos parámetros.
  • x : Un vector lógico de entrada o puede decir que es una condición por la cual queremos extraer valores.

Return : devuelve la posición de los valores del vector lógico o condición.

A continuación se muestra la sintaxis que se utiliza para asignar un rango de fechas. 

Sintaxis:

rango_de_fechas <- which(data$X_dates %in% as.Date(c(“start_date”, “end_date”)) )

Ahora, para dibujar líneas verticales para trazar, agregamos la función geom_vline() a geom_point() que dibuja líneas verticales en el valor dado de X-Axis. Dentro de geom_vline(), usamos el parámetro «xintercept» para controlar la posición de la línea en el eje X. Damos el valor numérico del rango de fechas devuelto por la indexación de fechas a xintercept usando la función as.numeric(). 

Sintaxis: geom_vline(xintercepción)

Parámetro: aquí se usa xintercept para controlar la posición X de la línea.

Retorno: línea vertical en la gráfica R.

Ejemplo:

R

# Load ggplot2 Package
library("ggplot2")
 
# Create DataFrame for plotting
data <- data.frame(X_dates = seq(as.Date(0, origin = "2000-01-01"),
                                 length = 60, by = "1 month"),
                   Y_Values = sample(1:100, 60, replace = TRUE))
 
# Assign range of the dates to
# date_range object
date_range <- which(data$X_dates %in% as.Date(
  c("2001-12-01", "2003-11-01")) )
 
# Create ggplot2 ScatterPlot with vertical
# line to X Axis of Class 'Date'
vlinedPlot <- ggplot(data, aes(X_dates, Y_Values)) +                      
  geom_point(fill = "green", size = 5, color = "black", shape = 21)+
  geom_vline(xintercept = as.numeric(data$X_dates[date_range]),
             color = "dark green", size = 2)
vlinedPlot

Producción:

ScatterPlot with Vertical Line to X-Axis of Class Date

Diagrama de dispersión con línea vertical al eje X de la fecha de clase

Publicación traducida automáticamente

Artículo escrito por erkrutikpatel y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *