Estoy tratando de mantener la leyenda de una capa (suave) y eliminar la leyenda de la otra (punto). He intentado apagar las leyendas con guides(colour = FALSE)
y geom_point(aes(color = vs), show.legend = FALSE)
.
Editar : como esta pregunta y sus respuestas son populares, un ejemplo reproducible parece en orden:
library(ggplot2)
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()
Respuestas:
del libro de cocina r , donde bp es tu ggplot:
Eliminar la leyenda de una estética particular (relleno):
También se puede hacer al especificar la escala:
Esto elimina todas las leyendas:
fuente
theme_bw()
puede interferir con cualquier definición realizada contheme()
. Cuando lo usetheme_bw()
, asegúrese de agregarlo a la trama antes de modificar cualquier otra opción de tema.bp + theme(legend.position="none") + theme_classic()
, las leyendas regresan. Entonces, ¿cómo eliminarlo?bp + theme_classic() + theme(legend.position="none")
Puede haber otra solución para esto:
su código fue:
Puede especificar el
show.legend
parámetro después de laaes
llamada:entonces la leyenda correspondiente debería desaparecer
fuente
scale_label
comando (ni esto tiene sentido), yguide(label = FALSE)
tampoco funcionó. ¡Gracias!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 vezlinetype
y una vez parafill
, lo que resulta en una leyenda combinada. Por el contrario,gear
tiene su propia entrada de leyenda ya que no se trata igual quefactor(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.Eliminar todas las leyendas: @ user3490026
Eliminar todas las leyendas: @duhaime
Desactiva las leyendas: @Tjebo
Elimine el relleno para que el tipo de línea sea visible
Igual que el anterior a través de la función scale_fill_:
Y ahora una posible respuesta a la solicitud del OP
Encienda algunos fuera de los ad-hoc post-hoc
fuente
warnings()
después de ejecutar su código y verá los motivos por los que no se muestra la cinta azul.se
cuando no se computa. Probablemente valga la pena un problema en Github, pero no tengo la energía en este momento ...Si su gráfico usa ambos
fill
ycolor
estética, puede eliminar la leyenda con:fuente