Как создать ручную легенду в ggplot2 (с примерами)

Как создать ручную легенду в 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() , мы смогли указать следующие аспекты легенды:

  • имя : Название легенды
  • breaks : Метки в легенде
  • values : цвета в легенде

Обратите внимание, что мы также можем использовать функцию 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

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.