Как добавить горизонтальную линию на график и легенду в 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)
Обратите внимание, что легенда справа от графика содержит кружки, указывающие, какие точки на графике принадлежат каким командам, а также в легенду добавлена горизонтальная линия, обозначающая линию отсечения.
Если вы хотите изменить заголовок горизонтальной линии в легенде, просто отредактируйте текст в столбце «Строки» в фрейме «Разбить данные».
Например, мы можем использовать следующий синтаксис, чтобы изменить метку горизонтальной линии на «Порог добра и зла»:
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