Как использовать abline() в R для добавления прямых линий на графики


Функцию abline() в R можно использовать для добавления одной или нескольких прямых линий на график в R.

Эта функция использует следующий синтаксис:

abline(a=NULL, b=NULL, h=NULL, v=NULL, …) куда: a, b: отдельные значения, определяющие точку пересечения и наклон линии. * h: значение y для горизонтальной линии * v:* значение x для вертикальной линии

В следующих примерах показано, как использовать эту функцию на практике.

Как добавить горизонтальные линии

Базовый код для добавления горизонтальной линии на график в R: abline(h = некоторое значение)

Предположим, у нас есть следующая диаграмма рассеяния, которая отображает значения x и y в наборе данных:

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

Чтобы добавить горизонтальную линию при значении y = 20, мы можем использовать следующий код:

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

В следующем коде показано, как добавить горизонтальную сплошную линию среднего значения y вместе с двумя горизонтальными пунктирными линиями на одно стандартное отклонение выше и ниже среднего значения:

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

Как добавить вертикальные линии

Базовый код для добавления вертикальной линии на график в R: abline(v = некоторое значение)

В следующем коде показано, как добавить вертикальную линию к среднему значению на гистограмме:

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

Как добавить линии регрессии

Базовый код для добавления простой линии линейной регрессии на график в R: abline(model)

Следующий код иллюстрирует, как добавить подобранную линию линейной регрессии к диаграмме рассеяния:

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

Обратите внимание, что нам просто нужно значение для точки пересечения и наклона, чтобы подогнать простую линию линейной регрессии к данным с помощью функции abline().

Таким образом, другим способом использования abline() для добавления линии регрессии является явное указание коэффициентов пересечения и наклона модели регрессии:

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

Обратите внимание, что это создает ту же строку, что и раньше.


Вы можете найти больше руководств по R на этой странице .