geom_ribbon不同的颜色 - R.

时间:2017-11-24 08:33:19

标签: r plot ggplot2 colors

我使用以下代码绘制我的数据,但我无法正确设置颜色为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

修改

传说怎么样?理想情况下,我想将它们组合在一起,使每种颜色的正方形由相同颜色的线交叉 enter image description here enter image description here

1 个答案:

答案 0 :(得分:1)

您需要添加fill美学,并在alpha之外aes geom_ribbon。以下代码应该解决这个问题。

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)