为什么我不能使用 override.aes 来更改图例中的颜色?

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

我想从 ggplot 的填充图例中删除颜色线。我通常使用 guide_legend(override.aes = ...) 来修改图例美学 - 对于点、线、alpha 等非常有用,但它不适用于我的 color 美学。我做错了什么?

# 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)))

这是 colour 需要拼写为 u 的情况之一。添加 u 使 override.aes 工作得很好。 ggplot2 自 2016 年以来的版本已修复此错误,您可以使用任一拼写。

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