Как создать легенду вручную в ggplot2 (с примерами)
Часто вам может потребоваться вручную добавить легенду к графику в ggplot2 с настраиваемыми цветами, метками, заголовком и т. д.
К счастью, это легко сделать с помощью функции Scale_color_manual() , и следующий пример показывает, как это сделать.
Пример: создание легенды вручную в ggplot2
Следующий код показывает, как построить три подобранные линии регрессии на графике в ggplot2 с пользовательской легендой, созданной вручную:
library (ggplot2)
#create data frame
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))
#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
geom_point() +
geom_smooth(se= FALSE , aes(color=' Linear ')) +
geom_smooth(formula=y~poly(x, 2), se= FALSE , aes(color=' Quadratic ')) +
geom_smooth(formula=y~poly(x, 3), se= FALSE , aes(color=' Cubic ')) +
scale_color_manual(name=' Regression Model ',
breaks=c(' Linear ', ' Quadratic ', ' Cubic '),
values=c(' Cubic '=' pink ', ' Quadratic '=' blue ', ' Linear '=' purple '))
Используя функцию Scale_color_manual() , мы смогли указать следующие аспекты легенды:
- name : Название легенды
- перерывы : Метки в легенде
- значения : цвета в легенде.
Обратите внимание, что мы также можем использовать функцию theme() для изменения размера шрифта элементов легенды:
library (ggplot2)
#create data frame
df <- data. frame (x=c(1, 2, 2, 3, 5, 6, 8, 8, 9, 9, 10, 11, 12, 15, 15),
y=c(2, 3, 3, 4, 5, 5, 6, 7, 8, 8, 9, 10, 16, 19, 28))
#create plot with three fitted regression models
ggplot(df, aes(x, y)) +
geom_point() +
geom_smooth(se= FALSE , aes(color=' Linear ')) +
geom_smooth(formula=y~poly(x, 2), se= FALSE , aes(color=' Quadratic ')) +
geom_smooth(formula=y~poly(x, 3), se= FALSE , aes(color=' Cubic ')) +
scale_color_manual(name=' Regression Model ',
breaks=c(' Linear ', ' Quadratic ', ' Cubic '),
values=c(' Cubic '=' pink ', ' Quadratic '=' blue ', ' Linear '=' purple '))+
theme(legend. title =element_text(size= 20 ),
legend. text =element_text(size= 14 ))
Обратите внимание, что размер шрифта заголовков и надписей был увеличен.
Дополнительные ресурсы
В следующих руководствах объясняется, как выполнять другие распространенные операции в ggplot2:
Как изменить положение легенды в ggplot2
Как изменить размер легенды в ggplot2
Как изменить заголовок легенды в ggplot2
Как изменить метки легенды в ggplot2