问题描述
在geom_smooth()
中使用ggplot2
中的fill
绘制两条回归曲线时,对于library(ggplot2)
p <- ggplot(data=iris,aes(x=Sepal.Width,y=Sepal.Length)) + geom_point()
p <- p + geom_smooth(method=loess,aes(colour="Loess"),fill="yellow")
p <- p + geom_smooth(method=lm,aes(colour="LM"))
print(p)
颜色,图例会选择置信区间相交的一条。我确实认为这种行为是在重叠区域成比例地大于另一个重叠区域时发生的,但是我发现这是非常不希望的,因为读者能够推断出“暗化”区域是CI相交的区域。恕我直言,为两条曲线分配相同的颜色有点困难或不直观。
我该如何纠正?
MWE:
{{1}}
输出:
解决方法
您可以将填充添加为美观映射,确保将其命名为与颜色映射相同的名称,以使图例得以合并:
library(ggplot2)
ggplot(data=iris,aes(x=Sepal.Width,y=Sepal.Length)) +
geom_point(aes(shape = "data")) +
geom_smooth(method=loess,aes(colour="Loess",fill="Loess")) +
geom_smooth(method=lm,aes(colour="LM",fill = "LM")) +
scale_fill_manual(values = c("yellow","gray"),name = "model") +
scale_colour_manual(values = c("red","blue"),name = "model") +
labs(shape = "")