Comment utiliser abline() dans R pour ajouter des lignes droites aux tracés



La fonction abline() dans R peut être utilisée pour ajouter une ou plusieurs lignes droites à un tracé dans R.

Cette fonction utilise la syntaxe suivante :

abline(a=NULL, b=NULL, h=NULL, v=NULL, …)

où:

  • a, b : valeurs uniques qui spécifient l’origine et la pente de la ligne
  • h : la valeur y pour la ligne horizontale
  • v : la valeur x pour la ligne verticale

Les exemples suivants montrent comment utiliser cette fonction dans la pratique.

Comment ajouter des lignes horizontales

Le code de base pour ajouter une ligne horizontale à un tracé dans R est : abline(h = some value)

Supposons que nous ayons le nuage de points suivant qui affiche les valeurs de x et y dans un ensemble de données :

#define dataset
data <- data.frame(x = c(1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11),
                   y = c(13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33, 35, 40, 41))

#plot x and y values in dataset
plot(data$x, data$y, pch = 16)

Pour ajouter une ligne horizontale à la valeur y = 20, on peut utiliser le code suivant :

abline(h = 20, col = 'coral2', lwd = 2)

Le code suivant illustre comment ajouter une ligne continue horizontale à la valeur moyenne de y ainsi que deux lignes pointillées horizontales à un écart type au-dessus et en dessous de la valeur moyenne :

#create scatterplot for x and y
plot(data$x, data$y, pch = 16)

#create horizontal line at mean value of y
abline(h = mean(data$y), lwd = 2)

#create horizontal lines at one standard deviation above and below the mean value
abline(h = mean(data$y) + sd(data$y), col = 'steelblue', lwd = 3, lty = 2)
abline(h = mean(data$y) - sd(data$y), col = 'steelblue', lwd = 3, lty = 2)

Comment ajouter des lignes verticales

Le code de base pour ajouter une ligne verticale à un tracé dans R est : abline(v = some value)

Le code suivant illustre comment ajouter une ligne verticale à la valeur moyenne sur un histogramme :

#make this example reproducible
set.seed(0)

#create dataset with 1000 random values normally distributed with mean = 10, sd = 2
data <- rnorm(1000, mean = 10, sd = 2)

#create histogram of data values
hist(data, col = 'steelblue')

#draw a vertical dashed line at the mean value
abline(v = mean(data), lwd = 3, lty = 2)

Comment ajouter des lignes de régression

Le code de base pour ajouter une simple ligne de régression linéaire à un tracé dans R est : abline(model)

Le code suivant illustre comment ajouter une droite de régression linéaire ajustée à un nuage de points :

#define dataset
data <- data.frame(x = c(1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11),
                   y = c(13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33, 35, 40, 41))

#create scatterplot of x and y values
plot(data$x, data$y, pch = 16)

#fit a linear regression model to the data
reg_model <- lm(y ~ x, data = data)

#add the fitted regression line to the scatterplot
abline(reg_model, col="steelblue")

Notez que nous avons simplement besoin d’une valeur pour l’ordonnée à l’origine et la pente pour ajuster une simple ligne de régression linéaire aux données à l’aide de la fonction abline().

Ainsi, une autre façon d’utiliser abline() pour ajouter une droite de régression consiste à spécifier explicitement les coefficients d’origine et de pente du modèle de régression :

#define dataset
data <- data.frame(x = c(1, 1, 2, 3, 4, 4, 5, 6, 7, 7, 8, 9, 10, 11, 11),
                   y = c(13, 14, 17, 12, 23, 24, 25, 25, 24, 28, 32, 33, 35, 40, 41))

#create scatterplot of x and y values
plot(data$x, data$y, pch = 16)

#fit a linear regression model to the data
reg_model <- lm(y ~ x, data = data)

#define intercept and slope values
a <- coefficients(reg_model)[1] #intercept
b <- coefficients(reg_model)[2] #slope

#add the fitted regression line to the scatterplot
abline(a=a, b=b, col="steelblue")

Notez que cela produit la même ligne que précédemment.


Vous pouvez trouver plus de didacticiels R sur cette page .

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *