Como la pregunta y la respuesta del usuario 3490026 son un éxito de búsqueda superior, he hecho un ejemplo reproducible y una breve ilustración de las sugerencias hechas hasta ahora, junto con una solución que aborda explícitamente la pregunta del OP.
Una de las cosas que ggplot2
sí es confusa es que combina automáticamente ciertas leyendas cuando están asociadas con la misma variable. Por ejemplo, factor(gear)
aparece dos veces, una vez linetype
y una vez para fill
, lo que resulta en una leyenda combinada. Por el contrario, gear
tiene su propia entrada de leyenda ya que no se trata igual que factor(gear)
. Las soluciones ofrecidas hasta ahora suelen funcionar bien. Pero ocasionalmente, es posible que deba anular las guías. Vea mi último ejemplo al final.
# reproducible example:
library(ggplot2)
p <- ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs)) +
geom_point(aes(shape = factor(cyl))) +
geom_line(aes(linetype = factor(gear))) +
geom_smooth(aes(fill = factor(gear), color = gear)) +
theme_bw()
Eliminar todas las leyendas: @ user3490026
p + theme(legend.position = "none")
Eliminar todas las leyendas: @duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
Desactiva las leyendas: @Tjebo
ggplot(data = mtcars, aes(x = mpg, y = disp, group = gear)) +
geom_point(aes(color = vs), show.legend = FALSE) +
geom_point(aes(shape = factor(cyl)), show.legend = FALSE) +
geom_line(aes(linetype = factor(gear)), show.legend = FALSE) +
geom_smooth(aes(fill = factor(gear), color = gear), show.legend = FALSE) +
theme_bw()
Elimine el relleno para que el tipo de línea sea visible
p + guides(fill = FALSE)
Igual que el anterior a través de la función scale_fill_:
p + scale_fill_discrete(guide = FALSE)
Y ahora una posible respuesta a la solicitud del OP
"para mantener la leyenda de una capa (suave) y eliminar la leyenda de la otra (punto)"
Encienda algunos fuera de los ad-hoc post-hoc
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)