Plot a Seasonal or other Subseries from a Time Series

These functions plot seasonal (or other) subseries of a time series. For each season (or other category), a time series is plotted.

ts, hplot
monthplot(x, …)

# S3 method for stl monthplot(x, labels = NULL, ylab = choice, choice = "seasonal", …)

# S3 method for StructTS monthplot(x, labels = NULL, ylab = choice, choice = "sea", …)

# S3 method for ts monthplot(x, labels = NULL, times = time(x), phase = cycle(x), ylab = deparse(substitute(x)), …)

# S3 method for default monthplot(x, labels = 1L:12L, ylab = deparse(substitute(x)), times = seq_along(x), phase = (times - 1L)%%length(labels) + 1L, base = mean, axes = TRUE, type = c("l", "h"), box = TRUE, add = FALSE, col = par("col"), lty = par("lty"), lwd = par("lwd"), col.base = col, lty.base = lty, lwd.base = lwd, ...)


Time series or related object.


Labels to use for each ‘season’.


y label.


Time of each observation.


Indicator for each ‘season’.


Function to use for reference line for subseries.


Which series of an stl or StructTS object?

Arguments to be passed to the default method or graphical parameters.


Should axes be drawn (ignored if add = TRUE)?


Type of plot. The default is to join the points with lines, and "h" is for histogram-like vertical lines.


Should a box be drawn (ignored if add = TRUE)?


Should thus just add on an existing plot.

col, lty, lwd

Graphics parameters for the series.

col.base, lty.base, lwd.base

Graphics parameters for the segments used for the reference lines.


These functions extract subseries from a time series and plot them all in one frame. The ts, stl, and StructTS methods use the internally recorded frequency and start and finish times to set the scale and the seasons. The default method assumes observations come in groups of 12 (though this can be changed).

If the labels are not given but the phase is given, then the labels default to the unique values of the phase. If both are given, then the phase values are assumed to be indices into the labels array, i.e., they should be in the range from 1 to length(labels).


These functions are executed for their side effect of drawing a seasonal subseries plot on the current graphical window.


Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.

See Also

ts, stl, StructTS

  • monthplot
  • monthplot.default
  • monthplot.ts
  • monthplot.stl
  • monthplot.StructTS
library(stats) # NOT RUN { require(graphics) ## The CO2 data fit <- stl(log(co2), s.window = 20, t.window = 20) plot(fit) op <- par(mfrow = c(2,2)) monthplot(co2, ylab = "data", cex.axis = 0.8) monthplot(fit, choice = "seasonal", cex.axis = 0.8) monthplot(fit, choice = "trend", cex.axis = 0.8) monthplot(fit, choice = "remainder", type = "h", cex.axis = 0.8) par(op) ## The CO2 data, grouped quarterly quarter <- (cycle(co2) - 1) %/% 3 monthplot(co2, phase = quarter) ## see also JohnsonJohnson # }
Documentation reproduced from package stats, version 3.5.0, License: Part of R 3.5.0

Community examples

Looks like there are no examples yet.