Why can't I use override.aes to change the color in a legend?
Asked Answered
C

1

12

I want to remove the color line from a fill legend for a ggplot. I usually use guide_legend(override.aes = ...) to modify legend aesthetics - works great for points, lines, alpha, etc., but it's not working for my color aesthetic. What am I doing wrong?

# 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

Chromate answered 13/11, 2015 at 23:37 Comment(0)
C
12

This was one of the cases where colour needed to be spelt with u. Adding the u made override.aes work just fine. ggplot2 releases since 2016 have fixed this bug, and you can use either spelling.

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

enter image description here

Chromate answered 13/11, 2015 at 23:37 Comment(1)
Was banging my head on my desk quite hard over this issue when I wrote up my seemingly simple answer once...Laboy

© 2022 - 2024 — McMap. All rights reserved.