geom_ribbon 不同颜色 - R

3
我正在使用下面的代码绘制我的数据,但我无法正确设置geom_ribbon的颜色。
我的图表包含4条线,每条线都有不同的颜色。我希望每条线的'geom_ribbon'具有与其线相同的颜色(透明度-alpha)。
此外,当我更改alpha的值(例如从0.1到0.9),我看不到透明度的任何变化。最后,在图例中添加了一个额外的类别,我想删除它?在这个基本的ggplot上有什么帮助吗?
ggplot(dfmean_forplot, aes(x = image, y = value, group = ID)) + 
  geom_line(aes(colour=factor(ID)))+ 
  scale_x_discrete(breaks=1:21,
  labels=c("19/1","7/2","17/2","18/3","17/4","27/4","17/5","27/5","7/6","16/6","26/6","5/7","16/7","6/8","15/8","25/8","4/9","25/9","4/10","14/10","22/11"))+ 
  xlab("# reference")+
  ylab("value")+
  scale_colour_discrete(name = "class")+
  ylim(0,0.9)+
  geom_ribbon(aes(ymin=dfmean_forplot$value-dfsd_forplot$value, ymax=dfmean_forplot$value+dfsd_forplot$value, alpha = 0.3))

enter image description here

编辑

图例怎么样?理想情况下,我希望将它们组合在一起,以便每个颜色都有一个正方形,被同色线条穿过。 输入图片描述 输入图片描述


2
给两个尺度取相同的名称,并将它们连接在一起。 - undefined
完全正确!非常感谢 - undefined
1个回答

3

您需要为geom_ribbon添加fill美学并将alpha移出aes。以下代码应该解决这个问题。

ggplot(dfmean_forplot, aes(x = image, y = value, group = ID)) + 
 geom_line(aes(colour=factor(ID)))+ 
 scale_x_discrete(breaks=1:21,
                  labels=c("19/1","7/2","17/2","18/3","17/4","27/4","17/5","27/5","7/6","16/6","26/6","5/7","16/7","6/8","15/8","25/8","4/9","25/9","4/10","14/10","22/11"))+
 xlab("# reference")+
 ylab("value")+
 scale_colour_discrete(name = "class")+
 ylim(0,0.9)+
 geom_ribbon(aes(ymin=dfmean_forplot$value-dfsd_forplot$value, 
                 ymax=dfmean_forplot$value+dfsd_forplot$value,
                 fill = factor(ID)), alpha = 0.3)

谢谢你的回复!它正常工作了。我已经编辑了问题以展示结果,并向你提出了一个关于图例的疑问。另外,你能解释一下在aes内部和外部设置参数的区别吗? - undefined
1
aes内部,你正在将一个变量进行映射。这意味着aes(alpha = 0.3)让ggplot认为有一个值为0.3的变量需要被赋予一个透明度值。它会帮助你创建一个图例,显示这个新变量映射到的透明度值是多少。在aes之外,你正在将其设置为一个常数。这意味着ggplot不会解释成一个比例尺,而只是给它一个值为0.3,并且没有提供图例。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接