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