Ajouter une ligne à un tracé avec la fonction Lines() dans R
-
Utilisez la fonction
lines()
pour ajouter une ligne à un tracé dans R -
Utilisez des
points
pour ajouter des points à un tracé dans R -
L’ordre d’appel des fonctions
plot
etlines
affecte les échelles de tracé
Cet article présentera comment ajouter une ligne à un tracé avec la fonction lines()
dans R.
Utilisez la fonction lines()
pour ajouter une ligne à un tracé dans R
La fonction lines()
fait partie du package R graphics
et est utilisée pour ajouter des lignes au tracé. Dans un premier temps, la fonction plot
doit être appelée pour construire un tracé où il existe un mappage des variables spécifiées par les deux premiers arguments. Notez que le deuxième argument, qui désigne les coordonnées de l’axe y, est facultatif. Une fois le tracé tracé, nous pouvons appeler la fonction lines()
et passer les vecteurs de coordonnées nécessaires pour ajouter des lignes au tracé. La fonction plot
n’est pas nécessaire pour tracer un graphique linéaire pour que la fonction lines()
fonctionne.
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"))
Utilisez des points
pour ajouter des points à un tracé dans R
Semblable à la fonction lines()
, le package graphics
fournit la fonction points()
pour dessiner des points sur le tracé. L’exemple suivant illustre le scénario dans lequel deux lignes et mappages de points sont créés sur le même tracé. Notez, cependant, que le graphique linéaire d’origine est tracé avec la fonction 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"))
L’ordre d’appel des fonctions plot
et lines
affecte les échelles de tracé
Parfois, les données mappées avec le premier appel de fonction ont des échelles qui ne sont pas suffisantes pour le mappage suivant. L’extrait de code suivant montre comment l’une des lignes est presque hors limites dans le tracé.
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")
Notez que le problème précédent peut être résolu en réorganisant manuellement les lignes, comme illustré dans l’exemple suivant. Cependant, des scripts plus complexes peuvent nécessiter la construction d’instructions conditionnelles et la vérification dynamique des valeurs maximales des données de l’axe des 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