Как добавить горизонтальную линию на график и легенду в 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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *