I have a plot of time series in ggplot2 package and I have performed the Moving average and I would like to add the result of moving average to the plot of time series.
Sample of Data-set (p31):
ambtemp dt
-1.14 2007-09-29 00:01:57
-1.12 2007-09-29 00:03:57
-1.33 2007-09-29 00:05:57
-1.44 2007-09-29 00:07:57
-1.54 2007-09-29 00:09:57
-1.29 2007-09-29 00:11:57
Applied code for time series presentation:
Require(ggplot2)
library(scales)
p29$dt=strptime(p31$dt, "%Y-%m-%d %H:%M:%S")
ggplot(p29, aes(dt, ambtemp)) + geom_line() +
scale_x_datetime(breaks = date_breaks("2 hour"),labels=date_format("%H:%M")) + xlab("Time 00.00 ~ 24:00 (2007-09-29)") + ylab("Tempreture")+
opts(title = ("Node 29"))
Sample of time series presentation
Sample of Moving average plot Sample of expected results
The challenge is that time series data ov=btained from data-set which includes timestamps and temperature but Moving average data include just the average column and not the timestamps and fitting these two can cause inconsistency.
One solution is to use
rollmean()
function from libraryzoo
to calculate moving average.There is some confusion with data frame names in your question (p31 and p29), so I will use p 29.
If line colors should appear in legend, then
aes()
inggplot()
andgeom_line()
has to be modified andscale_colour_manual()
should be added.