Gráfico de dispersión conectado con la función 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")

Gráfico de variables conectadas en R

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

Función plot símbolos pch

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)

Personalizando los puntos de la función plot

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

Gráfico de dispersión conectado con flechas

Gráfico de dispersión conectado con flechas en R

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)

Puntos conectados con flechas en R

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