Estoy tratando de eliminar el título de una leyenda en 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")
He visto esta pregunta y ninguna de las soluciones allí parece funcionar para mí. La mayoría da un error sobre cómo opts
está obsoleto y cómo utilizarlo theme
en su lugar. También he intentado varias versiones de theme(legend.title=NULL)
, theme(legend.title="")
, theme(legend.title=element_blank)
, mensajes, etc. error típico son:
'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)
Lo estoy usando ggplot2
por primera vez desde que se lanzó la versión 0.9.3 y me resulta difícil navegar por algunos de los cambios ...
labs()
para esto: Agregue la línealabs(colour = "")
a su código que produjo el gráfico anterior.Respuestas:
Casi estabas ahí: solo agrega
theme(legend.title=element_blank())
Esta página de Cookbook for R ofrece muchos detalles sobre cómo personalizar las leyendas.
fuente
guide = guide_legend()
comando funciona. Para eliminar el título de la leyenda de relleno, pero para mantener el título de la leyenda de color, por ejemploscale_fill_brewer(palette = "Dark2", guide = guide_legend(title = NULL)) + scale_color_manual(values = c("blue", "white", "red"))
Esto también funciona y también demuestra cómo cambiar el título de la leyenda:
fuente
theme_bw()
pero no el mejor, en los casos en que la leyenda tiene un cuadro alrededor y está ubicada en algún lugar del área de la trama (mi enfoque habitual).scale_color_manual(name=element_blank())+
de la leyenda inferior meelement_blank()
parece ser el enfoque recomendado. La configuraciónname = NULL
es otra forma.Otra opción para usar
labs
y configurar el colorNULL
.fuente
Para
Error: 'opts' is deprecated
. Úselo en sutheme()
lugar. (Desaparecido; usado por última vez en la versión 0.9.1) 'Reemplacéopts(title = "Boxplot - Candidate's Tweet Scores")
conlabs(title = "Boxplot - Candidate's Tweet Scores")
. ¡Funcionó!fuente
Dado que puede tener más de una leyenda en una trama, una forma de eliminar selectivamente solo uno de los títulos sin dejar un espacio vacío es establecer el
name
argumento de lascale_
función enNULL
, es decirscale_fill_discrete(name = NULL)
(felicitaciones a @pascal por un comentario en otro hilo )
fuente