使用geom_ribbon

问题描述

我正在使用一个有列的数据框:

     species  replicate  position DOY   RED.PEAK RED.PEAK.SD FAR.RED.PEAK FAR.RED.PEAK.SD
1 LINGONBERRY         1      LOW   1 0.10218177 0.050779465   0.14498610      0.04848566
2 LINGONBERRY         1      LOW  10 0.12089622 0.039990500   0.18177440      0.03263417
3 LINGONBERRY         1      LOW   2 0.10861619 0.039823347   0.20582430      0.05709061
4 LINGONBERRY         1      LOW   3 0.05398631 0.006064099   0.10750730      0.01954550
5 LINGONBERRY         1      LOW   4 0.08722205 0.017874483   0.14446139      0.03133565
6 LINGONBERRY         1      LOW   5 0.04872162 0.028601630   0.09535204      0.02216967

以物种,复制品,位置和时间为例,RED.PEAK和FAR.RED.PEAK是我的值,RED.PEAK。 SD 和FAR.RED.PEAK。 SD 是RED.PEAK和FAR.RED.PEAK的标准偏差

我正在使用ggplot用facet_grid绘制不同的物种(3), 线型的不同位置(2), 以及带有颜色的不同复制品(3)。

NEW.gridplot <- ggplot(new.plot.table,aes(DOY,RED.PEAK,group=interaction(position,replicate)))+
  scale_x_discrete(limit = c("II Feb","I Mar","II Mar","I Apr","II Apr","I May","II May","I Jun","II Jun","I Jul"))+ 
  facet_grid(.~species)+
  geom_line(aes(color=replicate,linetype=position),size=2)+
  scale_linetype_manual(values=c("dashed","solid")) +
  scale_color_manual(values = c('black','red','blue')) +
  geom_ribbon(aes(ymin = RED.PEAK - RED.PEAK.SD,ymax = RED.PEAK + RED.PEAK.SD),alpha = 0.1) +
  myplotting

print(NEW.gridplot)

see an example of ggplot I am having now

,效果很好。但是,我也想在geom_ribbon中将阴影着色为黑色,蓝色和红色。

 geom_ribbon(aes(ymin = RED.PEAK - RED.PEAK.SD,alpha = 0.1,fill=(values = c('black','blue')))

不起作用,出现错误 错误:美学的长度必须为1或与数据相同(150):填充 然后:

geom_ribbon(aes(ymin = ORANGE.PEAK - ORANGE.PEAK.SD,ymax = ORANGE.PEAK + ORANGE.PEAK.SD),fill=replicate)+
                  scale_fill_manual(values = c('black','blue'))  

也不起作用,传递错误 rep(value [[k]],length.out = n)中的错误: 尝试复制“ closure”类型的对象

正在寻找一种解决方案,以使来自geom_ribbon的阴影与来自geom_line的相应阴影具有相同的颜色。

解决方法

我认为您的第二次尝试几乎是正确的。但是fill=...应该在aes函数内部,然后您需要另一个```scale_fill_manual````:

  geom_ribbon(aes(ymin = RED.PEAK - RED.PEAK.SD,ymax = RED.PEAK + RED.PEAK.SD,fill = c("black","red","blue")),alpha = 0.1,show.legend = F) +
  scale_fill_manual(values = c("black","blue"))

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...