当绘图中使用3种以上的颜色时,在图例中会产生误导性的geom_smooth颜色

时间:2016-05-11 06:24:16

标签: r ggplot2

请考虑以下

set.seed(28100)
random_data <- data.frame(x=rnorm(100),
                          y=rnorm(100),
                          colour=sample(c("a","b","c"),  100, replace=TRUE),
                          class=sample(c("alpha","beta"),  100, replace=TRUE))
require(ggplot2)
ggplot() +
  geom_smooth(data=random_data, aes(x=x, y=y, colour=colour, linetype=class), se=FALSE)

返回

enter image description here

class图例中线条的颜色具有误导性,因为蓝色 - geom_smooth的默认颜色 - 也用于映射属性c

如何将geom_smooth的默认颜色设置为中性色 - 比方说 - 灰色?

1 个答案:

答案 0 :(得分:3)

您可以使用此类缩放功能中的guide覆盖。我在这里把它变成灰色

 ggplot() +
       geom_smooth(data=random_data, aes(x=x, y=y, colour=colour, linetype=class), se=FALSE) +
       scale_linetype_manual(values=c("solid","dashed")
                             ,guide = guide_legend(override.aes = list(color = "grey")))

enter image description here