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

Cpt*_*emo 5 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)
Run Code Online (Sandbox Code Playgroud)

返回

在此输入图像描述

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

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

Kou*_*ndy 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")))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述