Time series and time prediction simultaneously using ggplot2

I have time series with forecast and confidence interval data, I wanted to build them using ggplot2. I do this with the code below:

set.seed(321) library(ggplot2) #create some dummy data similar to mine sample<-rnorm(350) forecast<-rnorm(24) upper<-forecast+2*sd(forecast) lower<-forecast-2*sd(forecast) ## wrap data into a data.frame df1 = data.frame(time = seq(325,350,length=26), M = sample[325:350], isin = "observations") df2 = data.frame(time = seq(351,374,length=24), M = forecast , isin = "my_forecast") df3 = data.frame(time = seq(351,374,length=24), M = upper ,isin = "upper_bound") df4 = data.frame(time = seq(351,374,length=24), M = lower, isin = "lower_bound") df = rbind(df1, df2, df3, df4) ## ggplot object ggplot(df, aes(x = time, y = M, color = isin)) + geom_line() 

enter image description here

How can I append the top and bottom lines of the same color? and also how can I set specific colors for prediction and sampling?

+10
r plot ggplot2
source share
2 answers

Use scale_colour_manual :

 ggplot(df, aes(x = time, y = M, color = isin)) + geom_line() + scale_colour_manual(values=c(observations='blue', my_forecast='red', upper_bound='black', lower_bound='black')) 

enter image description here

change

This is another option based on @rnso's answer.

 ggplot(df1, aes(x = time, y = M)) + geom_line(colour='blue') + geom_smooth(aes(x=time, y=M, ymax=upper_bound, ymin=lower_bound), colour='red', data=df5, stat='identity') 

enter image description here

+6
source share

The following might be helpful:

 ggplot() + geom_line(data=df1, aes(x = time, y = M, color = isin)) + stat_smooth(data=df2, aes(x = time, y = M, color = isin)) 

enter image description here

The 'method' option can also be used in stat_smooth ()

+5
source share

All Articles