2015-11-13 6 views
6

Ich möchte die Farblinie aus einer Fülllegende für einen ggplot entfernen. Ich benutze guide_legend(override.aes = ...) in der Regel Legende Ästhetik zu verändern - hervorragend für Punkte, Linien, Alpha, etc., aber es funktioniert nicht für meine color Ästhetik. Was mache ich falsch?Warum kann ich override.aes ​​nicht verwenden, um die Farbe in einer Legende zu ändern?

# generate data 
set.seed(47) 
data = data.frame(year = rep(2000:2004, 3), 
        value = runif(15), 
        group = rep(c("A", "B", "C"), each = 5)) 

# create the plot 
p = ggplot(data, aes(x = year, y = value, fill = group)) + 
    geom_area(position = position_fill(), color = "white") + 
    scale_fill_grey() 

# this should modify the fill legend to remove the colored line 
# but the line is still there 
p + guides(fill = guide_legend(override.aes = list(color = NA))) 

enter image description here

Antwort

8

Dies ist einer der Fälle, in denen colour muss mit einem der u geschrieben werden. Das Hinzufügen der u macht override.aes gut funktionieren:

p + guides(fill = guide_legend(override.aes = list(colour = NA))) 

enter image description here

+1

Es ist bereits in der Entwickler-Version geändert. – joran

+2

„ggplout2“ -hadley – rawr

+0

war mein Kopf auf meinem Schreibtisch ziemlich hart über dieses Thema hämmern, als ich schrieb up [meine scheinbar einfache Antwort] (http://stackoverflow.com/questions/28694969/add-separate-legend-for- geom-vline/28696738 # 28696738) einmal ... – Henrik