Como alterar o título da legenda em ggplot2 (com exemplos)
Existem duas maneiras fáceis de alterar o título da legenda em um gráfico ggplot2:
Método 1: use laboratórios()
ggplot(data, aes(x=x_var, y=y_var, fill=fill_var)) +
geom_boxplot() +
labs(fill=' Legend Title ')
Método 2: Use 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 '))
Este tutorial mostra exemplos de como usar esses dois métodos na prática.
Método 1: alterar o título da legenda usando labs()
O código a seguir mostra como criar um boxplot agrupado para um determinado conjunto de dados:
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()
Por padrão, ggplot2 usa o nome da variável no conjunto de dados como título da legenda. No entanto, podemos usar a função labs() para modificá-lo facilmente:
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 ')
Também podemos adicionar uma quebra de linha no título da legenda, colocando \ nonde queremos que a nova linha comece:
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 ')
Método 2: alterar o título da legenda usando scale_fill_manual()
Também podemos usar a função scale_fill_manual() para especificar simultaneamente um título de legenda e um vetor de valores de cores a serem usados:
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 '))
Observe que os valores das cores podem ser nomes ou códigos de cores hexadecimais.
Recursos adicionais
Um guia completo para os melhores temas ggplot2
O guia completo para títulos ggplot2
Como criar gráficos lado a lado no ggplot2