Da die Frage und die Antwort von user3490026 ein Top-Sucherfolg sind, habe ich ein reproduzierbares Beispiel und eine kurze Illustration der bisher gemachten Vorschläge zusammen mit einer Lösung erstellt, die die Frage des OP explizit behandelt.
Eines der Dinge, die ggplot2
tun und verwirrend sein können, ist, dass bestimmte Legenden automatisch gemischt werden, wenn sie derselben Variablen zugeordnet sind. Wird beispielsweise factor(gear)
zweimal angezeigt, einmal für linetype
und einmal für fill
, was zu einer kombinierten Legende führt. Hat im Gegensatz gear
dazu einen eigenen Legendeneintrag, da er nicht wie derselbe behandelt wird factor(gear)
. Die bisher angebotenen Lösungen funktionieren normalerweise gut. Gelegentlich müssen Sie jedoch möglicherweise die Hilfslinien überschreiben. Siehe mein letztes Beispiel unten.
# 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()
Entfernen Sie alle Legenden: @ user3490026
p + theme(legend.position = "none")
Entferne alle Legenden: @duhaime
p + guides(fill = FALSE, color = FALSE, linetype = FALSE, shape = FALSE)
Legenden ausschalten: @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()
Entfernen Sie die Füllung, damit der Linientyp sichtbar wird
p + guides(fill = FALSE)
Gleich wie oben über die Funktion scale_fill_:
p + scale_fill_discrete(guide = FALSE)
Und jetzt eine mögliche Antwort auf die Anfrage des OP
"um die Legende einer Ebene (glatt) zu halten und die Legende der anderen (Punkt) zu entfernen"
Schalten Sie einige Ad-hoc-Post-Hoc aus
p + guides(fill = guide_legend(override.aes = list(color = NA)),
color = FALSE,
shape = FALSE)