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


Есть два простых способа изменить заголовок легенды на диаграмме 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