R base proporciona varias funciones para añadir segmentos y flechas a los gráficos. En esta guía vamos a utilizar el siguiente gráfico de ejemplo:

# Datos de muestra
set.seed(132)
x <- seq(1, 10, by = 0.05)
y <- x^2 + rnorm(x, sd = 10)

# Función gráfica usada en los siguientes ejemplos
splot <- function(x, y) {
  plot(x, y, pch = ifelse(x > 8, 23, ifelse(y < 0, 24, 21)),
       bg = ifelse(x > 8, "deepskyblue", ifelse(y < 0 , "orange", "lightgreen")))
}

La función abline

La función abline permite dibujar líneas horizontales (argumento h), líneas verticales (argumento v), líneas basadas en un intercepto y una pendiente (argumentos a y b), así como crear una recta de regresión.

Línea horizontal

El argumento h permite establecer el valor del eje Y en el que dibujar una línea horizontal (o varias pasando un vector).

splot(x, y) # Función de ejemplo

# Línea horizontal en Y = 0
abline(h = 0)

Línea horizontal en R con la función abline

Línea vertical

El argumento v permite establecer los valores del eje X en los que dibujar líneas verticales.

splot(x, y)

# Línea vertical en X = 8
abline(v = 8)

Línea vertical en R con abline

Línea horizontal y vertical al mismo tiempo

También puedes añadir líneas verticales y horizontales a la vez especificando ambos argumentos.

splot(x, y)

# Línea horizontal en Y = 1 y vertical en X = 8
abline(h = 1, v = 8)

Función abline en R

Intercepto y pendiente

Además de líneas verticales y horizontales también puedes especificar el intercepto con el argumento a y la pendiente de la línea con el argumento b.

splot(x, y)

abline(a = -15, # Intercepto
       b = 10)  # Pendiente

Línea diagonal en R con la función abline estableciendo el intercepto y la pendiente

Línea de regresión

La función abline también permite dibujar una linea de regresión de un modelo.

splot(x, y)

abline(lm(y ~ x)) # Regresión lineal

Añadiendo una línea de regresión en R con la función abline

Personalización de la línea

La misma personalización que se puede aplicar a las líneas en R se puede aplicar a esta y a las otras funciones de esta guía.

splot(x, y)

abline(h = 0, v = 8,
       col = c("red", "green"),
       lwd = 2,
       lty = 2:3)

Personalización del color, ancho y tipo de línea en la función abline

La función segments

Esta función es muy similar a abline, salvo que puedes especificar los puntos de inicio y de final de las líneas con los argumentos x0, x1, y0 e y1.

Función segments en R

splot(x, y)

segments(x0 = 1,
         x1 = 3,
         y0 = 0,
         y1 = 0,
         lwd = 2,
         col = "red") 

segments(x0 = 8,
         x1 = 8,
         y0 = 40,
         y1 = 100,
         lwd = 2,
         col = "orange") 

La función arrows

Puedes crear las flechas de la misma manera que los segmentos, especificando los puntos de inicio y final de la flecha para cada eje.

splot(x, y)

arrows(x0 = 3,
       x1 = 7,
       y0 = 40,
       y1 = 90) 

Función arrows en R

Ángulo y ancho

Además de modificar el color, ancho o tipo de línea, la función arrows también permite personalizar el ancho y el ángulo de la punta de la flecha.

splot(x, y)

arrows(x0 = 3, x1 = 7,
       y0 = 40, y1 = 90,
       length = 0.1,
       angle = 20)  

Personalizar la punta de flecha de la función arrows en R

También te puede interesar