Sometimes it is useful to display a variable over time. This example shows how to create a time series using the ggplot21 library.
The data set temp contains the daily temperature and dew point. It contains three variables: Date, temp and dewpoint. Once loaded into R, the data frame can be viewed:
temp
temp dewpoint Date
1 11.9 7.1 2015-05-11
2 14.2 4.7 2015-05-12
3 14.2 4.7 2015-05-12
4 14.2 4.7 2015-05-12
.....
omitted for brevity
The individual variables can be addressed:
temp$Date
temp$temp
temp$dewpoint
To create a time series of the temperature and the dew point, first make sure the ggplot22 and scales3 packages are installed and loaded:
library(ggplot2)
library(scales) # to access breaks/formatting functions
Now create a new window (dev.new()), use the ggplot package, apply a black and white theme, show data points and fit a smooth trend line (red for temp and blue for dewpoint). Following this, create a title and appropriate axes labels. When adding annotations, it is necessary to address the coordinates of the x-axis as a date (rather than a number or string). Finally, format the date axis as appropriate (here 3 monthly):
dev.new()
ggplot() +
theme_bw() +
geom_point(aes(x=Date, y=temp), data=temp, colour='#ff0000') +
geom_smooth(aes(x=Date, y=temp), data=temp, colour='#ff0000', method='loess') +
geom_point(aes(x=Date, y=dewpoint), data=temp, shape=17,
colour='#0000ff') +
geom_smooth(aes(x=Date, y=dewpoint), data=temp, method='loess') +
ggtitle(label='Temperature and Dew Point') +
ylab(label='Temp deg Celsius') +
xlab(label='Date') +
annotate(geom='text', x=as.Date('2015-06-15'), y=28,
label='Temperature', fontface='bold') +
annotate(geom='text', x=as.Date('2015-06-15'), y=26, label='Dew Point', fontface='bold') +
annotate('segment', x=as.Date('2015-05-01'), xend=as.Date('2015-05-10'), y=28, yend=28, colour='red') +
annotate('segment', x=as.Date('2015-05-01'), xend=as.Date('2015-05-10'), y=26, yend=26, colour='blue') +
scale_x_date(labels=date_format('%m/%y'),
breaks=date_breaks('3 months')) # this scales the x axis.
The code can be copied and pasted into the R console
