Agregar una línea a una gráfica con la función Lines() en R
-
Utilice la función
lines()
para agregar una línea a una gráfica en R -
Utilice
points
para agregar puntos a una gráfica en R -
El orden de la llamada de función
plot
ylines
afecta las escalas de la gráfica
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"))
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"))
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")
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"))
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