Eu tenho um quadro de dados simples que estou tentando fazer um gráfico combinado de linha e ponto usando ggplot2
. Supondo que meus dados sejam assim:
df <- data.frame(x=rep(1:10,2), y=c(1:10,11:20),
group=c(rep("a",10),rep("b",10)))
E estou tentando fazer um enredo:
g <- ggplot(df, aes(x=x, y=y, group=group))
g <- g + geom_line(aes(colour=group))
g <- g + geom_point(aes(colour=group, alpha = .8))
g
O resultado parece bom com uma exceção. Tem uma legenda extra mostrando o alpha
para minha geom_point
camada.
Como posso manter a legenda mostrando as cores do grupo, mas não aquela que mostra minhas configurações alfa?
g + scale_alpha(guide = "none")
.group
estética não gera escalas ou guias por conta própria. É sempre uma espécie de modificação de outra coisa. Você nunca terá uma lenda pela estética do "grupo".Basta adicionar o
show.legend = F
código após a parte que você não quer.g <- ggplot(df, aes(x=x, y=y, group=group)) g <- g + geom_line(aes(colour=group)) g <- g + geom_point(aes(colour=group, alpha = .8), show.legend = F)
fonte
Para versões antigas do ggplot2 (versões anteriores a 0.9.2, lançadas no final de 2012), esta resposta deve funcionar:
Tentei fazer isso com um
colour_scale
e não funcionou. Parece que ocolour_scale_hue
item funciona como uma função com um parâmetro padrãoTRUE
. Eu adicioneiscale_colour_hue(legend=FALSE)
e funcionou.Não tenho certeza se este é o caso para todos os itens de escala de cores no ggplot
fonte
legend
em umascale_*
chamada está obsoleto, é melhor fazerscale_colour_hue(guide = "none")
.legend=FALSE
está obsoleto, conforme apontado pelo comentário de @shujaa, esta é efetivamente uma resposta duplicada, ou seja, adicionar oguide = "none"
a umascale_fill/color*
função.