Як створити легенду вручну в 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 : Мітки в легенді
  • значення : кольори в легенді

Зауважте, що ми також можемо використовувати функцію 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

Додати коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *