Как нарисовать линию тренда в ggplot2 (с примерами)


Вы можете использовать следующий базовый синтаксис для рисования линии тренда на графике в ggplot2:

ggplot(df, aes(x=xvar, y=yvar)) +
 geom_point() +
 geom_smooth(method=lm) #add linear trend line

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

#create data frame
df <- data.frame(x=c(1, 2, 3, 3, 5, 7, 9),
 y=c(8, 14, 18, 25, 29, 33, 25))

#view data frame
df

 x y
1 1 8
2 2 14
3 3 18
4 3 25
5 5 29
6 7 33
7 9 25

Пример 1. Добавление линии линейного тренда

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

library (ggplot2)

ggplot(df, aes(x=x, y=y)) +
 geom_point() +
 geom_smooth(method=lm) #add linear trend line 

Пример 2. Добавление линии линейного тренда и указание доверительной области

Мы можем использовать аргумент уровня , чтобы указать уровень достоверности, который следует использовать для заштрихованной области достоверности на графике:

library (ggplot2)

ggplot(df, aes(x=x, y=y)) +
 geom_point() +
 geom_smooth(method=lm, level= 0.99 ) 

Обратите внимание, что уровень достоверности по умолчанию равен 0,95. Указав уровень достоверности 0,99, наша заштрихованная область достоверности на графике стала еще шире.

Пример 3. Добавление линии линейного тренда и недостоверной области

Мы можем использовать аргумент se=FALSE , чтобы скрыть заштрихованную доверительную область вокруг линии тренда:

library (ggplot2)

ggplot(df, aes(x=x, y=y)) +
 geom_point() +
 geom_smooth(method=lm, se= FALSE , col='red', size= 2 ) 

Пример 4. Добавление изогнутой линии тренда

Если мы не укажем метод для geom_smooth() , по умолчанию будет использоваться изогнутая лессовая линия:

library (ggplot2)

ggplot(df, aes(x=x, y=y)) +
 geom_point() +
 geom_smooth() 

Полную онлайн-документацию по функции geom_smooth() можно найти здесь .

Дополнительные ресурсы

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

Как настроить толщину линии в ggplot2
Как установить пределы оси в ggplot2
Как удалить линии сетки в ggplot2
Как изменить цвет фона в ggplot2