Есть два простых способа изменить заголовок легенды на диаграмме ggplot2:
Способ 1: использовать лаборатории()
ggplot(data, aes(x=x_var, y=y_var, fill=fill_var)) +
geom_boxplot() +
labs(fill='Legend Title')
Способ 2: Используйте scale_fill_manual()
ggplot(data, aes(x=x_var, y=y_var, fill=fill_var)) +
geom_boxplot() +
scale_fill_manual('Legend Title', values=c('color1', 'color2'))
В этом руководстве показаны примеры использования этих двух методов на практике.
Способ 1: изменить название легенды с помощью labs()
В следующем коде показано, как создать сгруппированную ящичковую диаграмму для заданного набора данных:
library (ggplot2)
#create dataset
data <- data.frame(team= rep (c('A', 'B', 'C'), each =50),
program= rep (c('low', 'high'), each =25),
values= seq (1:150)+ sample (1:100, 150, replace= TRUE ))
#create boxplot
ggplot(data, aes(x=team, y=values, fill=program)) +
geom_boxplot()

По умолчанию ggplot2 использует имя переменной в наборе данных в качестве заголовка легенды. Однако мы можем использовать функцию labs() , чтобы легко изменить его:
library (ggplot2)
#create dataset
data <- data.frame(team= rep (c('A', 'B', 'C'), each =50),
program= rep (c('low', 'high'), each =25),
values= seq (1:150)+ sample (1:100, 150, replace= TRUE ))
#create boxplot
ggplot(data, aes(x=team, y=values, fill=program)) +
geom_boxplot() +
labs(fill='Program Type')

Мы также можем добавить разрыв строки в заголовок легенды, поместив \n там, где мы хотим, чтобы новая строка начиналась:
library (ggplot2)
#create dataset
data <- data.frame(team= rep (c('A', 'B', 'C'), each =50),
program= rep (c('low', 'high'), each =25),
values= seq (1:150)+ sample (1:100, 150, replace= TRUE ))
#create boxplot
ggplot(data, aes(x=team, y=values, fill=program)) +
geom_boxplot() +
labs(fill='Program\nType')

Способ 2: изменить заголовок легенды с помощью scale_fill_manual()
Мы также можем использовать функцию scale_fill_manual() , чтобы одновременно указать заголовок легенды и вектор используемых значений цвета:
library (ggplot2)
#create dataset
data <- data.frame(team= rep (c('A', 'B', 'C'), each =50),
program= rep (c('low', 'high'), each =25),
values= seq (1:150)+ sample (1:100, 150, replace= TRUE ))
#create boxplot
ggplot(data, aes(x=team, y=values, fill=program)) +
geom_boxplot() +
scale_fill_manual('Program Type', values=c('pink',' blue'))

Обратите внимание, что значения цветов могут быть именами или шестнадцатеричными цветовыми кодами.
Дополнительные ресурсы
Полное руководство по лучшим темам ggplot2
Полное руководство по заголовкам ggplot2
Как создавать параллельные графики в ggplot2