Angenommen, ich habe einen GGPlot mit mehr als einer Legende.
mov <- subset(movies, length != "")
(p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
)
Ich kann die Anzeige aller Legenden wie folgt ausschalten:
(p1 <- p0 + theme(legend.position = "none"))
Vorbeigehen show_guide = FALSE
bis geom_point
(gemäß diese Frage ) schaltet die Formlegende aus.
(p2 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point(show_guide = FALSE)
)
Aber was ist, wenn ich stattdessen die Farblegende deaktivieren möchte? Es scheint keine Möglichkeit zu geben, show_guide
Auf welche Legende soll das Verhalten angewendet werden? Und es gibt kein show_guide
Argument für Skalen oder Ästhetik.
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
scale_colour_discrete(show_guide = FALSE) +
geom_point()
)
# Error in discrete_scale
(p4 <- ggplot(mov, aes(year, rating, shape = mpaa)) +
aes(colour = length, show_guide = FALSE) +
geom_point()
)
#draws both legends
Diese Frage legt nahe, dass die moderne Art der Steuerung von Legenden (seit ggplot2 v0.9.2) die Funktion guides
ist.
Ich möchte in der Lage sein, so etwas zu tun
p0 + guides(
colour = guide_legend(show = FALSE)
)
aber guide_legend
hat kein Show-Argument.
Wie lege ich fest, welche Legenden angezeigt werden?
Sie können guide=FALSE
In scale_..._...()
verwenden, um die Legende zu unterdrücken.
Für Ihr Beispiel sollten Sie scale_colour_continuous()
verwenden, da length
eine kontinuierliche Variable ist (nicht diskret).
(p3 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
scale_colour_continuous(guide = FALSE) +
geom_point()
)
Oder verwenden Sie die Funktion guides()
, um FALSE
für das Element/die Ästhetik festzulegen, das/die nicht als Legende angezeigt werden soll, z. B. fill
, shape
, colour
.
p0 <- ggplot(mov, aes(year, rating, colour = length, shape = mpaa)) +
geom_point()
p0+guides(colour=FALSE)
Beide bereitgestellten Lösungen funktionieren in der neuen ggplot2
- Version 2.0.0, aber der Datensatz movies
ist in dieser Bibliothek nicht mehr vorhanden. Stattdessen müssen Sie ein neues Paket ggplot2movies
Verwenden, um diese Lösungen zu überprüfen.
library(ggplot2movies)
data(movies)
mov <- subset(movies, length != "")
Sie können einfach show.legend=FALSE
um die entsprechende Legende zu unterdrücken