poner - Cómo cambiar el título de la leyenda en ggplot
manual ggplot2 (7)
Tengo la siguiente trama como a continuación. Fue creado con 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")
Ahora lo siguiente que quiero hacer es modificar el título de la leyenda de cond en NEW LEGEND TITLE .
Entonces, lo que hice fue simplemente agregar la siguiente línea, agregar el final del código anterior:
+labs(colour="NEW LEGEND TITLE")
Pero no funciona. ¿Cuál es la forma correcta de hacerlo?
Como en su código utilizó ggplot(data, fill= cond)
para crear el histograma, necesita agregar el título de la leyenda usando también "fill" en la sección de la etiqueta, es decir, +labs(fill="Title name")
. Si estaba usando un tipo diferente de diagrama donde el código era ggplot (data, color = cond), entonces podría usar +labs(colour= "Title Name")
. En resumen, el argumento de laboratorio tiene que coincidir con el argumento aes.
He usado + guides(fill=guide_legend("my awesome title"))
para cambiar el título de la leyenda en las gráficas de geom_bar pero no parece funcionar para geom_point.
Como tiene dos densidades, imagino que puede querer establecer sus propios colores con scale_fill_manual
.
Si es así puedes hacer:
df <- data.frame(x=1:10,group=c(rep("a",5),rep("b",5)))
legend_title <- "OMG My Title"
ggplot(df, aes(x=x, fill=group)) + geom_density(alpha=.3) +
scale_fill_manual(legend_title,values=c("orange","red"))
Esto debería funcionar:
p <- ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha=.3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE")
p <- p + guides(fill=guide_legend(title="New Legend Title"))
(o alternativamente)
p + scale_fill_discrete(name = "New Legend Title")
Estoy usando facet_wrap en mi ggplot y ninguna de las soluciones sugeridas me funcionó excepto la solución de ArnaudA:
qplot(…) + guides(color=guide_legend(title="sale year"))
Hay otra respuesta muy simple que puede funcionar para algunos gráficos simples.
Simplemente agregue una llamada a guide_legend () en su gráfico.
ggplot(...) + ... + guide_legend(title="my awesome title")
Como se muestra en los muy buenos documentos ggplot .
Si eso no funciona, puede establecer más precisamente sus parámetros de guía con una llamada a guides :
ggplot(...) + ... + guides(fill=guide_legend("my awesome title"))
También puede variar la forma / color / tamaño especificando estos parámetros para su llamada a las guides
también.
No profundicé mucho en esto, sino porque usaste fill = cond en ggplot (),
+ labs(color=''NEW LEGEND TITLE'')
podría no haber funcionado. Sin embargo, si reemplazas el color por el relleno , ¡funciona!
+ labs(fill=''NEW LEGEND TITLE'')
Esto funcionó para mí en ggplot2_2.1.0
PD: Hubiera comentado, pero mi reputación de no es suficiente para comentar.
También puede agregar una sola línea (última línea):
ggplot(df, aes(x=rating, fill=cond)) +
geom_density(alpha = .3) +
xlab("NEW RATING TITLE") +
ylab("NEW DENSITY TITLE") +
labs(fill = "Your Title")