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")))
}
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 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 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)

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 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

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)

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.

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")
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)

Á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)

También te puede interesar