Ajouter une ligne à un tracé avec la fonction Lines() dans R

Jinku Hu 30 janvier 2023
  1. Utilisez la fonction lines() pour ajouter une ligne à un tracé dans R
  2. Utilisez des points pour ajouter des points à un tracé dans R
  3. L’ordre d’appel des fonctions plot et lines affecte les échelles de tracé
Ajouter une ligne à un tracé avec la fonction Lines() dans R

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

ajouter une ligne au tracé

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

ajouter des points au tracé de ligne

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

fonctions de tracé et de lignes

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

réorganiser les fonctions de tracé et de ligne

Auteur: 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

Article connexe - R Plot