使用R中的geom_smooth在ggplot2图例中混合填充颜色

问题描述

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}}

输出

The data and colors used here are used for illustration purposes only

解决方法

您可以将填充添加为美观映射,确保将其命名为与颜色映射相同的名称,以使图例得以合并:

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 = "")

enter image description here