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

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

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