Estou tentando manter a legenda de uma camada (suave) e remover a legenda da outra (ponto). Eu tentei desligar as lendas com guides(colour = FALSE)
e geom_point(aes(color = vs), show.legend = FALSE)
.
Edit : Como esta pergunta e suas respostas são populares, um exemplo reproduzível parece em ordem:
library(ggplot2)
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()
Respostas:
do livro de receitas r , onde bp é seu ggplot:
Remova a legenda de uma estética específica (preenchimento):
Isso também pode ser feito ao especificar a escala:
Isso remove todas as legendas:
fonte
theme_bw()
pode interferir em qualquer definição feita usandotheme()
. Ao usartheme_bw()
, adicione-o à plotagem antes de alterar qualquer outra opção de tema.bp + theme(legend.position="none") + theme_classic()
, as lendas voltam. Então, como removê-lo?bp + theme_classic() + theme(legend.position="none")
Pode haver outra solução para isso:
Seu código foi:
Você pode especificar o
show.legend
parâmetro após aaes
chamada:então a legenda correspondente deve desaparecer
fonte
scale_label
comando (nem isso faz sentido) eguide(label = FALSE)
também não funcionou. Obrigado!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 vezlinetype
e uma vezfill
, resultando em uma legenda combinada. Por outro lado,gear
possui sua própria entrada de legenda, pois não é tratada da mesma forma quefactor(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.Remova todas as legendas: @ user3490026
Remova todas as legendas: @duhaime
Desativar legendas: @Tjebo
Remova o preenchimento para que o tipo de linha fique visível
O mesmo que acima, através da função scale_fill_:
E agora uma resposta possível à solicitação do OP
Desativar alguns ad-hoc post-hoc
fonte
warnings()
depois de executar seu código e você verá o (s) motivo (s) para a fita azul não aparecer.se
quando não é computada. Provavelmente vale a pena uma questão no github, mas não tenho energia agora ...Se seu gráfico usa estética
fill
e amboscolor
, você pode remover a legenda com:fonte