Eu tenho o seguinte gráfico como abaixo. Foi criado com este comando:
library(ggplot2)
df <- data.frame(cond = factor(rep(c("A", "B"), each = 200)),
rating = c(rnorm(200), rnorm(200, mean=.8)))
ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
Agora, a próxima coisa que quero fazer é modificar o título da legenda de cond para NEW LEGEND TITLE .
Então, o que eu fiz foi adicionar a seguinte linha e adicionar o final do código acima:
+labs(colour="NEW LEGEND TITLE")
Mas isso não funciona. Qual é o caminho certo para fazer isso?
labs(fill="xyz")
deve fazergeom_
instruções, recomendo a resposta em stackoverflow.com/a/38485985/1169233 , é a única que funcionou para mim.Respostas:
Isso deve funcionar:
(ou alternativamente)
fonte
p$labels$fill <- "New Legend Title"
p$labels$fill
não funcionou para mim. Comggplot2_2.1.0
eu usop$labels$colour <- "New legend title"
p$labels$fill
é bom, mas se você estiver usando mais de uma variável em estética (tipo de linha, cor, forma) nos aes, precisará alterá-las para cada uma separadamente.Eu não gostei muito disso, mas porque você usou fill = cond em ggplot (),
pode não ter funcionado. No entanto, você substitui a cor pelo preenchimento , funciona!
Isso funcionou para mim no ggplot2_2.1.0
fonte
p + guides(fill=guide_legend(title="New Legend Title"))
Como você tem duas densidades, imagino que você queira definir suas próprias cores
scale_fill_manual
.Se sim, você pode fazer:
fonte
Nenhum dos códigos acima funcionou para mim.
Aqui está o que eu encontrei e funcionou.
labs(color = "sale year")
Você também pode dar um espaço entre o título e a exibição adicionando
\n
no final.labs(color = 'sale year\n")
fonte
fill
vez decolor
(oucolour
) é necessário? Dado o tempo da pergunta, é possível que estejaggplot2
relacionada à versão.Como no seu código você costumava
ggplot(data, fill= cond)
criar o histograma, você precisa adicionar o título da legenda usando também "fill" na seção do rótulo, por exemplo+labs(fill="Title name")
. Se você estava usando um tipo diferente de plotagem em que o código era ggplot (data, cor = cond), você poderia usar+labs(colour= "Title Name")
. Em resumo, o argumento do laboratório deve corresponder ao argumento aes.Eu costumava
+ guides(fill=guide_legend("my awesome title"))
alterar o título da legenda nos gráficos geom_bar, mas ele não parecia funcionar para geom_point.fonte
geom_point()
, isso funciona para mim:guides(color=guide_legend("Type:"))
guides(color=guide_legend("Score Ranking:"))
Há outra resposta muito simples que pode funcionar para alguns gráficos simples.
Basta adicionar uma chamada para guide_legend () no seu gráfico.
Como mostrado nos excelentes documentos do ggplot .
Se isso não funcionar, você pode definir com mais precisão os parâmetros do seu guia com uma chamada para guias :
Você também pode variar a forma / cor / tamanho especificando esses parâmetros para a sua chamada
guides
.fonte
qplot(…) + guides(color=guide_legend(title="sale year"))
funcionouApenas para adicionar à lista (as outras opções aqui não funcionaram para mim), você também pode usar a função update_labels for ggplot:
Isso também permitirá que você altere os rótulos dos eixos x e y, com linhas separadas:
fonte
Notei que existem duas maneiras de alterar / especificar legend.title para ggboxplot ():
O código é modificado com base no exemplo do GitHub .
fonte
Estou usando um facet_wrap no meu ggplot e nenhuma das soluções sugeridas funcionou para mim, exceto a solução da ArnaudA:
fonte
Muitas pessoas passam muito tempo alterando rótulos, legendas, títulos e nomes do eixo porque não sabem que é possível carregar tabelas no R que contém espaços
" "
. No entanto, você pode fazer isso para economizar tempo ou reduzir o tamanho do seu código, especificando os separadores ao carregar uma tabela que, por exemplo, é delimitada por guias (ou qualquer outro separador que não seja o padrão ou um espaço único):ou usando os parâmetros de carregamento padrão do formato csv:
Isso significa que você pode manter diretamente o nome
"NEW LEGEND TITLE"
como um nome de coluna (cabeçalho) no arquivo de dados original para evitar a especificação de um novo título de legenda em cada plot.fonte
ggplot(df) + labs(legend = '<legend_title>')
fonte