2013-03-20 9 views
7

Sto pianificando una serie di medie e deviazioni standard nel tempo con il codice riportato di seguito e sto tentando di utilizzare geom_ribbon per visualizzare le sd, vedere di seguito.Modifica di bordi geom_ribbon

A causa della notevole sovrapposizione, vorrei aggiungere un bordo ai nastri dello stesso colore della variabile corrispondente, ma è una linea tratteggiata, ma non riesco a capire dove questo codice sarebbe andato. So che i comandi "color" e "linetype" sono in qualche modo coinvolti ...

Grazie!

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) 

risposta

11

È necessario passare un valore per colour-geom_ribbon qualcosa come

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) 

con un esempio riproducibile (utilizzando una variante sugli esempi in ?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