3
Fragefest, ob ein ggplot eine Legende hat
Wie würde ich herausfinden, programmatisch, wenn ein gegebenes ggplot
Objekt eine Legende hat? Ich dachte zuerst an eine Umwandlung in eine grob
und prüfen, ob es eine guide-box
im Layout gibt, aber das fühlt sich ein bisschen hackish. Irgendwelche Vorschläge, wie man das in einer zuverlässigen & reproduzierbaren Weise macht?
-Code
library(ggplot2)
library(grid)
bp <- ggplot(iris, aes(Petal.Length, Petal.Width)) + theme(legend.position = "top")
noLegend <- bp + geom_point()
withLegend <- bp + geom_point(aes(color = Species))
gNoLegend <- ggplotGrob(noLegend)
gWithLegend <- ggplotGrob(withLegend)
any(gNoLegend$layout$name == "guide-box")
# [1] FALSE
any(gWithLegend$layout$name == "guide-box")
# [1] TRUE