Como a pergunta e a resposta do usuário3490026 são os principais resultados da pesquisa, fiz um exemplo reproduzível e uma breve ilustração das sugestões feitas até agora, juntamente com uma solução que aborda explicitamente a pergunta do OP.
Uma das coisas que ggplot2
faz e que pode ser confusa é que ela combina automaticamente certas legendas quando associadas à mesma variável. Por exemplo, factor(gear)
aparece duas vezes, uma vez linetype
e uma vez fill
, resultando em uma legenda combinada. Por outro lado, gear
possui sua própria entrada de legenda, pois não é tratada da mesma forma que factor(gear)
. As soluções oferecidas até agora geralmente funcionam bem. Mas, ocasionalmente, pode ser necessário substituir os guias. Veja meu último exemplo na parte inferior.
# reproducible example:
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()
Remova todas as legendas: @ user3490026
p + theme(legend.position = "none")
Remova todas as legendas: @duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
Desativar legendas: @Tjebo
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs), show.legend = FALSE) +
geom_point(aes(shape = factor(cyl)), show.legend = FALSE) +
geom_line(aes(linetype = factor(gear)), show.legend = FALSE) +
geom_smooth(aes(fill = factor(gear), color = gear), show.legend = FALSE) +
theme_bw()
Remova o preenchimento para que o tipo de linha fique visível
p + guides(fill = FALSE)
O mesmo que acima, através da função scale_fill_:
p + scale_fill_discrete(guide = FALSE)
E agora uma resposta possível à solicitação do OP
"para manter a legenda de uma camada (suave) e remover a legenda da outra (ponto)"
Desativar alguns ad-hoc post-hoc
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)