This document explains time series related plotting using ggplot2 and ggfortify.

Installation

First, install ggfortify from github.

library(devtools)
install_github('sinhrks/ggfortify')

Plotting ts objects

ggfortify let ggplot2 know how to interpret ts objects. After loading ggfortify, you can use ggplot2::autoplot function for ts objects.

library(ggfortify)
autoplot(AirPassengers)

To change line colour and line type, use ts.colour and ts.linetype options. Use help(autoplot.ts) (or help(autoplot.*) for any other objects) to check available options.

autoplot(AirPassengers, ts.colour = 'red', ts.linetype = 'dashed')

Multivariate time series will be drawn with facets.

library(vars)
data(Canada)
autoplot(Canada)

Specify facets = FALSE to draw on single axes.

autoplot(Canada, facets = FALSE)

Also, autoplot can handle other time-series-likes. Supported packages are:

library(xts)
autoplot(as.xts(AirPassengers), ts.colour = 'green')

library(timeSeries)
autoplot(as.timeSeries(AirPassengers), ts.colour = ('dodgerblue3'))

Specifying geometrics

You can change {ggplot2} geometrics specifying by its name. Geometrics currently supported are line, bar and point.

autoplot(AirPassengers, ts.geom = 'bar', fill = 'blue')

autoplot(AirPassengers, ts.geom = 'point', shape = 3)

Plotting with forecast package

ggfortify supports forecast object in forecast package.

library(forecast)
d.arima <- auto.arima(AirPassengers)
d.forecast <- forecast(d.arima, level = c(95), h = 50)
autoplot(d.forecast)

There are some options to change basic settings.

autoplot(d.forecast, ts.colour = 'firebrick1', predict.colour = 'red',
         predict.linetype = 'dashed', conf.int = FALSE)

Plotting with vars package

ggfortify supports varpred object in vars package.

library(vars)
d.vselect <- VARselect(Canada, lag.max = 5, type = 'const')$selection[1]
d.var <- VAR(Canada, p = d.vselect, type = 'const')

Available options are the same as forecast.

autoplot(predict(d.var, n.ahead = 50), ts.colour = 'dodgerblue4',
         predict.colour = 'blue', predict.linetype = 'dashed')

Plotting with changepoint package

ggfortify supports cpt object in changepoint package.

library(changepoint)
autoplot(cpt.meanvar(AirPassengers))

You can change some options for cpt.

autoplot(cpt.meanvar(AirPassengers), cpt.colour = 'blue', cpt.linetype = 'solid')

Plotting with strucchange package

ggfortify supports breakpoints object in strucchange package. Same plotting options as changepoint are available.

library(strucchange)
autoplot(breakpoints(Nile ~ 1), ts.colour = 'blue', ts.linetype = 'dashed',
         cpt.colour = 'dodgerblue3', cpt.linetype = 'solid')