Як додати середню лінію до графіка в ggplot2


Ви можете використовувати наступний базовий синтаксис, щоб додати рядок, який представляє середнє значення на графіку в ggplot2:

 ggplot(df, aes(x=x, y=y)) +
  geom_point() +
  geom_hline(yintercept = mean(df$y, na. rm = TRUE ))

У наступному прикладі показано, як використовувати цей синтаксис на практиці.

Приклад: додайте середню лінію до графіка в ggplot2

Припустимо, що ми маємо наступний кадр даних у R:

 #create data frame
df <- data. frame (x=c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12),
                 y=c(2, 5, 6, 5, 7, 8, 10, 12, 10, 9, 11, 15))

#view head of data frame
head(df)

  xy
1 1 2
2 2 5
3 3 6
4 4 5
5 5 7
6 6 8

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

 library (ggplot2)

#create scatter plot with average line to represent average y-value
ggplot(df, aes(x=x, y=y)) +
    geom_point() +
    geom_hline(yintercept = mean(df$y, na. rm = TRUE )) 

ggplot2 додає середню лінію

Ми бачимо, що середня лінія була додана до графіка трохи вище значення y, що дорівнює 8.

Якщо ми обчислимо середнє значення y, ми виявимо, що воно становить 8,333:

 #calculate average y-value
mean(df$y, na. rm = TRUE )

[1] 8.333333

Зауважте, що ми також можемо використовувати аргументи color , lty та lwd , щоб вказати колір, тип лінії та ширину лінії середньої лінії відповідно:

 library (ggplot2)

#create scatter plot with custom average line
ggplot(df, aes(x=x, y=y)) +
    geom_point() +
    geom_hline(yintercept = mean(df$y, na. rm = TRUE ), color=' blue ', lty=' dashed ', lwd= 2 ) 

Середня лінія тепер синя, пунктирна та має ширину лінії 2.

Ви можете знайти повну онлайн-документацію для функції geom_hline() тут .

Додаткові ресурси

У наступних посібниках пояснюється, як виконувати інші типові завдання в ggplot2:

Як намалювати лінію тренду в ggplot2
Як налаштувати товщину лінії в ggplot2
Як встановити межі осей у ggplot2

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *