Agregar una línea a una gráfica con la función Lines() en R

Jinku Hu 30 enero 2023
  1. Utilice la función lines() para agregar una línea a una gráfica en R
  2. Utilice points para agregar puntos a una gráfica en R
  3. El orden de la llamada de función plot y lines afecta las escalas de la gráfica
Agregar una línea a una gráfica con la función Lines() en R

Este artículo presentará cómo agregar una línea a un gráfico con la función lines() en R.

Utilice la función lines() para agregar una línea a una gráfica en R

La función lines() es parte del paquete R graphics y se usa para agregar líneas al gráfico. Al principio, se debe llamar a la función plot para construir una gráfica donde haya un mapeo de variables especificadas por los dos primeros argumentos. Tenga en cuenta que el segundo argumento, que denota las coordenadas del eje y, es opcional. Una vez dibujada la gráfica, podemos llamar a la función lines() y pasar los vectores de coordenadas según sea necesario para agregar líneas a la gráfica. La función plot no es necesaria para dibujar un gráfico lineal para que funcione la función lines().

library(stats)
library(babynames)
library(dplyr)

plot(cars$speed, cars$dist, type = "l", col = "red",
     main = "Title of the Plot",
     xlab = "Speed (mph)",
     ylab = "Stopping Distance (Feet)")

lines(cars$speed, cars$dist/4 , col = "green")

legend("topleft", c("line 1", "line 2"),
       lty = c(1,1),
       col = c("red", "green"))

agregar línea para trazar

Utilice points para agregar puntos a una gráfica en R

Similar a la función lines(), el paquete graphics proporciona la función points() para dibujar puntos en la gráfica. El siguiente ejemplo demuestra el escenario en el que se realizan dos líneas y asignaciones de puntos en el mismo gráfico. Sin embargo, observe que el gráfico lineal original se dibuja con la función plot.

library(stats)
library(babynames)
library(dplyr)

plot(cars$speed, cars$dist, type = "l", col = "red",
     main = "Title of the Plot",
     xlab = "Speed (mph)",
     ylab = "Stopping Distance (Feet)")
points(cars$speed, cars$dist, col = "blue" )

lines(cars$speed, cars$dist/4 , col = "green")
points(cars$speed, cars$dist/4 , col = "black")

legend("topleft", c("line 1", "line 2"),
       lty = c(1,1),
       col = c("red", "green"))

agregar puntos a la gráfica de línea

El orden de la llamada de función plot y lines afecta las escalas de la gráfica

A veces, los datos mapeados con la primera llamada de función tienen escalas que no son suficientes para el siguiente mapeo. El siguiente fragmento de código muestra cómo una de las líneas está casi fuera de los límites del gráfico.

library(stats)
library(babynames)
library(dplyr)

dat <- babynames %>%
  filter(name %in% c("Alice")) %>% filter(sex=="F")
dat2 <- babynames %>%
  filter(name %in% c("Mary")) %>% filter(sex=="F")

plot(dat$year, dat$n, type = "l", col = "blue",
     main = "Women born with different names",
     xlab = "Year",
     ylab = "Number of babies born")
lines(dat2$year, dat2$n, col = "red")

funciones de trama y líneas

Tenga en cuenta que el problema anterior se puede resolver con el reordenamiento manual de las líneas, como se muestra en el siguiente ejemplo. Sin embargo, es posible que los scripts más complejos necesiten construir declaraciones condicionales y verificación dinámica para los valores máximos de los datos del eje y.

library(stats)
library(babynames)
library(dplyr)

dat <- babynames %>%
  filter(name %in% c("Alice")) %>% filter(sex=="F")
dat2 <- babynames %>%
  filter(name %in% c("Mary")) %>% filter(sex=="F")
dat3 <- babynames %>%
  filter(name %in% c("Mae")) %>% filter(sex=="F")

plot(dat2$year, dat2$n, type = "l", col = "blue",
     main = "Women born with different names",
     xlab = "Year",
     ylab = "Number of babies born")
lines(dat$year, dat$n, col = "red")
lines(dat3$year, dat3$n, col = "orange")

legend("topright", c("Mary", "Alice", "Mae"),
       lty = c(1,1,1),
       col = c("blue", "red", "orange"))

reordenar funciones de trama y líneas

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artículo relacionado - R Plot