2013-03-20 206 views
7

我用下面的代碼繪製了一系列的均值和標準差隨着時間的推移,並想使用geom_ribbon,以顯示SD的,見下文。修改geom_ribbon接壤

由於顯著重疊,我想添加邊框那就是顏色對應的變量相同,但爲虛線的綵帶,但我想不通的地方在這段代碼會去。我知道「色」和「線型」命令在某種程度上參與...

謝謝!

graph.msd <- ggplot(data=g.data, aes(x=quarter,y=mean,group=number)) 
graph.msd <- graph.msd + geom_line(aes(colour = number),size=1)+geom_ribbon(aes(ymin=mean-sd,ymax=mean+sd,fill=number),linetype=2,alpha=0.1) 

回答

11

您需要colour的值傳遞給geom_ribbon

graph.msd <- graph.msd + 
geom_line(aes(colour = number),size=1)+ 
geom_ribbon(aes(ymin = mean-sd, ymax = mean+sd, 
       fill = number,colour = number), linetype=2, alpha=0.1) 

與重複的例子(使用實例的變體,?geom_ribbon

huron <- data.frame(year = 1875:1972, level = as.vector(LakeHuron)) 
library(plyr) # to access round_any 
huron$decade <- round_any(huron$year, 10, floor) 

ggplot(huron, aes(x =year, group = decade)) + 
    geom_ribbon(aes(ymin = level-1, ymax = level+1, 
     colour = factor(decade), fill = factor(decade)), 
    linetype = 2, alpha= 0.1) 

enter image description here