Estou tentando remover o título de uma lenda em ggplot2
:
df <- data.frame(
g = rep(letters[1:2], 5),
x = rnorm(10),
y = rnorm(10)
)
library(ggplot2)
ggplot(df, aes(x, y, colour=g)) +
geom_line(stat="identity") +
theme(legend.position="bottom")
Eu vi essa pergunta e nenhuma das soluções parece funcionar para mim. A maioria dá um erro sobre como opts
está obsoleto e como usar em seu theme
lugar. Eu também tentei várias versões theme(legend.title=NULL)
, theme(legend.title="")
, theme(legend.title=element_blank)
, mensagens etc. erro típica são:
'opts' is deprecated. Use 'theme' instead. (Deprecated; last used in version 0.9.1)
'theme_blank' is deprecated. Use 'element_blank' instead. (Deprecated; last used in version 0.9.1)
Estou usando ggplot2
pela primeira vez desde que a versão 0.9.3 foi lançada e estou achando difícil navegar por algumas das mudanças ...
labs()
para isso: Adicione a linhalabs(colour = "")
ao seu código que produziu o gráfico acima.Respostas:
Você estava quase lá: basta adicionar
theme(legend.title=element_blank())
Esta página do Cookbook for R fornece muitos detalhes sobre como personalizar as legendas.
fonte
guide = guide_legend()
comando funciona. Para remover o título da legenda de preenchimento, mas para manter o título da legenda de cor, por exemploscale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
Isso também funciona e também demonstra como alterar o título da legenda:
fonte
theme_bw()
mas não o melhor, em casos em que a legenda tem uma caixa ao redor e está posicionada em algum lugar na área do gráfico (minha abordagem usual).scale_color_manual(name=element_blank())+
para a legenda inferior resolveu isso para mimelement_blank()
parece ser a abordagem recomendada. A configuraçãoname = NULL
é outra maneira.Outra opção usando
labs
e definindo a cor paraNULL
.fonte
Para
Error: 'opts' is deprecated
. Use em seutheme()
lugar. (Extinto; usado pela última vez na versão 0.9.1) 'Substituídoopts(title = "Boxplot - Candidate's Tweet Scores")
porlabs(title = "Boxplot - Candidate's Tweet Scores")
. Funcionou!fonte
Uma vez que você pode ter mais de uma legenda em um gráfico, uma maneira de remover seletivamente apenas um dos títulos sem deixar um espaço vazio é definir o
name
argumento dascale_
função comoNULL
, ou seja,scale_fill_discrete(name = NULL)
(parabéns a @pascal por um comentário em outro tópico )
fonte