# [R] plotting time series using ggplots

Thu Sep 16 08:51:14 CEST 2010

```Hi,
I would like to plot a bunch of tree ring width data (time series)
using ggplots, but I'm having trouble figuring out how to do it.

My data is in a data.frame, with years as rownames and a distinct tree
ring series in each column. So, something like this:

rwl<-matrix(rnorm(800), nrow = 100)
colnames(rwl) <- paste('V', 1:8, sep = '')
rownames(rwl)<-c(1900:1999)
rwl<-as.data.frame(rwl))

I have 2 specific things I'd like to do:
1) use stat_summary(), geom_line(), and either geom_smooth() or
geom_ribbon() to plot the mean of the timeseries  (e.g. V1:V8) and
error bands or confidence limits around the mean for each year. I
cannot figure out how to do this except for this really clunky way:

rwl\$year<-as.numeric(rownames(rwl))
h<-ggplot(rwl, aes(x=year))
h+ geom_line(aes(y=V1))  #plots one of the timeseries
ymax=as.data.frame( t(apply(rwl[1:8], 1, summary,na.rm=TRUE )) )[,4]
ymin=as.data.frame( t(apply(rwl[1:8], 1, summary,na.rm=TRUE )) )[,2]
h + geom_ribbon(aes(ymin=ymin, ymax=ymax))
+geom_line(aes(y=rowMeans(rwl[1:8])))

2) I'd like to be able to plot all of the timeseries together, or plot
them grouped by another variable (for example site), but I can't
figure out how to get ggplot to plot all of the columns as Y data,
without specifying each separate timeseries with a distinct
+geom_line(aes(y="columnname").

Any suggestions on either problem would be greatly appreciated!

~Ali
--------------------