Aggiungi una linea a un grafico con la funzione Lines() in R

Jinku Hu 21 dicembre 2022
  1. Usa la funzione lines() per aggiungere una linea a un grafico in R
  2. Usa points per aggiungere punti a un diagramma in R
  3. L’ordine di chiamata delle funzioni plot e lines influisce sulle scale di Plot
Aggiungi una linea a un grafico con la funzione Lines() in R

Questo articolo introdurrà come aggiungere una linea a un grafico con la funzione lines() in R.

Usa la funzione lines() per aggiungere una linea a un grafico in R

La funzione lines() fa parte del pacchetto R graphics ed è usata per aggiungere linee al grafico. Inizialmente, la funzione plot dovrebbe essere chiamata per costruire un plot dove c’è una mappatura delle variabili specificate dai primi due argomenti. Nota che il secondo argomento, che denota le coordinate dell’asse y, è facoltativo. Una volta disegnato il grafico, possiamo chiamare la funzione lines() e passare i vettori di coordinate secondo necessità per aggiungere linee al grafico. La funzione plot non è necessaria per disegnare un grafico a linee affinché la funzione lines() funzioni.

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

aggiungi linea alla trama

Usa points per aggiungere punti a un diagramma in R

Simile alla funzione lines(), il pacchetto graphics fornisce la funzione points() per disegnare punti sul grafico. L’esempio seguente mostra lo scenario in cui vengono eseguite due linee e mappature di punti sullo stesso grafico. Si noti, tuttavia, che il grafico a linee originale è disegnato con la funzione 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"))

aggiungi punti al grafico a linee

L’ordine di chiamata delle funzioni plot e lines influisce sulle scale di Plot

A volte, i dati mappati con la prima chiamata di funzione hanno scale che non sono sufficienti per la mappatura successiva. Il prossimo frammento di codice mostra come una delle linee sia quasi fuori limite nella trama.

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

funzioni plot e linee

Si noti che il problema precedente può essere risolto con il riordino manuale delle linee, come mostrato nell’esempio seguente. Tuttavia, script più complessi potrebbero dover costruire istruzioni condizionali e controlli dinamici per i valori massimi dei dati dell’asse 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"))

riordina le funzioni di grafico e linee

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

Articolo correlato - R Plot