plot
Un gráfico de dispersión conectado representa la relación entre dos variables, generalmente a través del tiempo. Puedes crear este tipo de gráfico en R base con la función plot
, estableciendo type = "b"
.
# Datos
x <- c(1, 2, 3, 4, 5, 4, 7, 8, 9)
y <- c(12, 16, 14, 18, 16, 13, 15, 20, 22)
# Gráfico de dispersión conectado
plot(x, y, type = "b",
xlab = "Var 1", ylab = "Var 2")
Símbolo
El símbolo usado por defecto cuando type = "b"
se puede modificar haciendo uso del argumento pch
.
# Datos
x <- c(1, 2, 3, 4, 5, 4, 7, 8, 9)
y <- c(12, 16, 14, 18, 16, 13, 15, 20, 22)
plot(x, y,
type = "b", pch = 18,
xlab = "Var 1", ylab = "Var 2")
Colores y puntos
Puedes cambiar el color de las líneas y de los puntos. Sin embargo, el color de los puntos y las líneas será el mismo. Puedes sobrescribir los puntos utilizando la función points
.
# Datos
x <- c(1, 2, 3, 4, 5, 4, 7, 8, 9)
y <- c(12, 16, 14, 18, 16, 13, 15, 20, 22)
# Puntos y colores
plot(x, y, type = "b",
pch = 19, col = 4,
xlab = "Var 1", ylab = "Var 2")
points(x, y, pch = 19)
Agregar texto
Puedes etiquetar los puntos con la función text
. Esto puede ser útil, por ejemplo, para etiquetar la fecha para cada conjunto de observaciones. Ten en cuenta que hemos ajustado la posición de las etiquetas para mejor legibilidad.
# Datos
x <- c(1, 2, 3, 4, 5, 4, 7, 8, 9)
y <- c(12, 16, 14, 18, 16, 13, 15, 20, 22)
labels <- 2013:2021
# Gráfico de dispersión conectado with text
plot(x, y, type = "b",
xlim = c(1, 10), ylim = c(12, 23),
pch = 19, col = 4,
xlab = "Var 1", ylab = "Var 2")
text(x + 0.7, y + 0.4, labels)
Gráfico de dispersión conectado con flechas
Otra posibilidad es usar flechas para dibujar la ruta entre las observaciones de las variables. Para tal propósito puedes usar la siguiente función.
conArrows <- function(x, y, ...) {
plot(x, y, pch = "", ...)
invisible(sapply(1:length(x),
function(i) arrows(x[i], y[i],
x[i + 1], y[i + 1], ...)))
}
# Datos
x <- c(1, 2, 3, 4, 5, 4, 7, 8, 9)
y <- c(12, 16, 14, 18, 16, 13, 15, 20, 22)
# Gráfico de dispersión conectado con flechas
conArrows(x, y)
Personalización
Puedes pasar argumentos a la función para personalizar la salida, tal y como se muestra en el ejemplo siguiente.
conArrows <- function(x, y, ...) {
plot(x, y, pch = "", ...)
invisible(sapply(1:length(x),
function(i) arrows(x[i], y[i],
x[i + 1], y[i + 1], ...)))
}
# Datos
x <- c(1, 2, 3, 4, 5, 4, 7, 8, 9)
y <- c(12, 16, 14, 18, 16, 13, 15, 20, 22)
# Gráfico de dispersión conectado with arrows
conArrows(x, y, angle = 20, length = 0.15, col = 4)
También te puede interesar