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


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

 library (ggplot2)

#create data frame with values to plot
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff)

Створивши окремий кадр даних, що містить лише значення перетину y горизонтальної лінії, ми можемо додати горизонтальну лінію до графіка та автоматично додати її до легенди.

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

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

Припустимо, у R є наступний кадр даних, який містить інформацію про баскетболістів різних команд:

 #create data frame
df <- data. frame (team=rep(c(' A ', ' B '), each= 5 ),
                 assists=c(1, 3, 3, 4, 5, 7, 7, 9, 9, 10),
                 points=c(4, 8, 12, 10, 18, 25, 20, 28, 33, 35))

#view data frame
df

   team assists points
1 To 1 4
2 to 3 8
3 to 3 12
4 to 4 10
5 to 5 18
6 B 7 25
7 B 7 20
8 B 9 28
9 B 9 33
10 B 10 35

Припустімо, ми хочемо створити діаграму розсіювання в ggplot2, щоб візуалізувати значення очок і передач для кожного гравця на основі їхньої команди, а потім додати горизонтальну лінію на y = 22, щоб визначити «поріг» для різниці між хорошим і поганим гравців.

Для цього ми можемо використати такий синтаксис:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

ggplot2 додає горизонтальну лінію до легенди

Зауважте, що легенда праворуч від графіка містить кола, які вказують, які точки на графіку належать яким командам, а також до легенди додано горизонтальну лінію, яка представляє лінію розрізу.

Якщо ви хочете змінити підпис горизонтального рядка в легенді, просто відредагуйте текст у стовпці «Рядки» у фреймі даних розриву .

Наприклад, ми можемо використати такий синтаксис, щоб змінити мітку горизонтальної лінії на «Поріг добра проти зла»:

 library (ggplot2)

#create data frame that contains horizontal line location
cutoff <- data. frame (yintercept= 22 , Lines=' Cutoff of Good vs. Bad ')

#create scatterplot with horizontal line and include horizontal line in legend
ggplot(df, aes(x=assists, y=points)) + 
  geom_point(aes(color=team)) +
  geom_hline(aes(yintercept=yintercept, linetype=Lines), cutoff) 

Зверніть увагу, що підпис горизонтальної лінії в легенді змінився.

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

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

Як змінити назву легенди в ggplot2
Як змінити розмір легенди в ggplot2
Як змінити положення легенди в ggplot2

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

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