R: Plot Very Long Regular Time Series

longtsPlot {IDPmisc} | R Documentation

## Plot Very Long Regular Time Series

### Description

Plot one or more regular time series in multiple figures on one or more pages.

### Usage

    longtsPlot(y1, y2 = NULL,
               names1 = NULL, names2 = NULL,
               startP = start(y1)[1], upf = 400, fpp = 4, overlap = 20,
               x.at = NULL, x.ann = NULL, x.tick = NULL,
               y1.at = NULL, y1.ann = NULL, y1.tick = NULL,
               y2.at = NULL, y2.ann = NULL, y2.tick = NULL,
               nx.ann = 10, ny.ann = 3, cex.ann = par("cex.axis"),
               xlab = "", y1lab = "", y2lab = "", las = 0,
               col.y1 = "black", col.y2 = col.y1,
               cex.lab = par("cex.lab"),
               y1lim = range(y1, na.rm = TRUE, finite=TRUE),
               y2lim = range(y2, na.rm = TRUE, finite=TRUE),
               lty1 = 1, lty2 = 2, lwd1 = 1, lwd2 = lwd1,
               col1 = NULL, col2 = NULL,
               leg = TRUE, y1nam.leg = NULL, y2nam.leg = NULL,
               ncol.leg = NULL, cex.leg = par("cex"),
               h1 = NULL, h2 = NULL, col.h1 = "gray70", col.h2 = "gray70",
               main = NULL, cex.main = par("cex.main"),
               automain = is.null(main),
               mgp = c(2, 0.7, 0), mar = c(2,3,1,3)+.2,
               oma = if (automain|!is.null(main))
                                 c(0,0,2,0) else par("oma"),
               xpd = par("xpd"), cex = par("cex"),
               type1 = "s", type2 = type1,
               pch1 = 46, pch2 = pch1, cex.pt1 = 2, cex.pt2 = cex.pt1,
               slide = FALSE, each.fig = 1,
               filename = NULL, extension = NULL, filetype = NULL, ...)

### Arguments

`y1, y2` | Regular time series, time series matrices or ordinary vectors, dataframes or matrices with values corresponding to regular time intervals. Corresponding axes are on the left (for `y1`) and on the right (for `y2`) respectively. `y2` is optional and may have a different frequency and a different start time.
`names1, names2` | Names for time series used for legend.
`startP` | Start time of plot.
`upf` | Number of time units plottet per figure.
`fpp` | Number of figures per page (screen).
`overlap` | Length of time series on the right end of the figures which is identical with the left start of the next figure.
`x.at` | Time points at which long ticks on x-axis and annotations are set.
`x.ann` | Time annotations (character vector) for long ticks on x-axis
`x.tick` | Time points at which short ticks are set on x-axis. If Null, no short ticks are set.
`y1.at, y1.ann, y1.tick, y2.at, y2.ann, y2.tick` | Arguments starting with 'y1' ('y2') correspond to arguments for left (right) axis. For details see arguments for x-axis.
`nx.ann, ny.ann` | Approximate number of annotations on x- and y-axes, respectively
`cex.ann` | The magnification to be used for axis annotation relative to the current setting of cex.
`xlab` | Label for x-axis.
`y1lab, y2lab` | Labels for y-axes on the left and on the right end of the figure.
`las` | Cf. `par`.
`col.y1, col.y2` | Colors for left and right axis respectively.
`cex.lab` | cex of labels.
`y1lim, y2lim` | Limits for left and right axis respectively.
`lty1, lty2` | Vector of line types for each time series, possibly recycled.
`lwd1, lwd2` | Vector of line widths for each time series, possibly recycled.
`col1, col2` | Vector of color for each time series, possibly recycled.
`leg` | Logical. When TRUE, legend is drawn.
`y1nam.leg, y2nam.leg` | Name of y1- and y2-axis in legend.
`ncol.leg` | Number of columns in legend.
`cex.leg` | cex for legend.
`h1, h2` | Vector of y-positions of horizontal lines in the coordinate systems represented by the left and the right axis respectively.
`col.h1, col.h2` | Vector of colors for horizontal lines.
`main` | Title of plot.
`cex.main` | cex of title.
`automain` | Logical. When `TRUE`, the units of the start and the end on the page are printed in the title.
`mgp, mar, oma` | Cf. `par`.
`xpd` | Define whether data points are clipped to the plot region (=FALSE) or not (=TRUE). Horizontal lines, defined by `h1` or `h2` are always clipped.
`cex` | Cf. `par`.
`type1, type2` | For plotting lines or points. Cf. `plot`.
`pch1, pch2, cex.pt1, cex.pt2` | Plotting symbols and there sizes when 'type1' or 'type2' = "p"
`slide` | Logical. When `FALSE`, the first page (screen) is plotted only. When `TRUE`, user may leaf through the pages interactively.
`each.fig` | For `each.fig==1` all data are plotted. for `each.fig==2` every 2nd page is plotted and so on.
`filename` | When `filename` is not `NULL`, the displayed screen(s) are saved to disk and there is no question whether the next page should be printed. When `slide = TRUE`, the filename of the plots is extended by a serial number.
`extension` | The extension is defined automatically on windows systems and must be defined manually on the other systems.
`filetype` | On Windows: The type of plot, Windows metafile, PNG, JPEG, BMP (Windows bitmap format), TIFF, PostScript or PDF. Defaults to Windows meta file, `"wmf"` , with the extension `".wmf"`. Cf. `savePlot`. On non Windows operating systems: A device function (e.g., x11, postscript,...). The filetype defaults to `postscript` , with the extension `".ps"`. Cf. `dev.print`
`...` | Additional arguments to `savePlot` and `dev.print` respectively.

### Details

For longer time-series, it is sometimes important to spread several time-series plots over several subplots or even over several pages with several subplots in each. Moreover, these series have often different ranges, frequencies and start times. There is sometimes also the need of a more flexible annotation of axes than `plot.ts` provides. `longtsPlot` provides the user with all these features for one or two matrices or regular time series (time series matrices).

### Side Effects

One or more pages of time series plots are drawn on the current graphic device and, optionally, saved in one or more files.

### Author(s)

Rene Locher

### Examples

    ## sunspots, y-axis only on the left
    data(sunspots)
    longtsPlot(sunspots,upf=ceiling((end(sunspots)-start(sunspots))[1]/5))

    ## air quality (left axis) and meteo data (right axis)
    ## use xpd=TRUE for time series with rare but large values
    if (require(SwissAir)) {
      data(AirQual)
      st <- 6.5*30*48
      x.at <- seq(st,nrow(AirQual),48)
      longtsPlot(y1=AirQual[,c("ad.O3","ad.NOx")], y2 = AirQual$ad.T,
                 names1=c("O3","NOx"),names2 = "Temp",
                 startP = st, upf=7*48,
                 x.at = x.at, x.ann = substr(AirQual$start,1,6)[x.at],
                 x.tick = seq(st,nrow(AirQual),12),
                 y1.at = c(0,100), y1.tick = seq(0,150,50),
                 y2.at = c(10,30), y2.tick = seq(10,30,10),
                 y1lab="[ppb]", y2lab="[C]",
                 y1lim = c(0,100), y2lim = c(10,30), xpd=TRUE,
                 col2 = "red", type1 = "l")
    }

    ## Two time series with different frequencies and start times
    ## on the same figures
    set.seed(13)
    len <- 4*6*400
    x <- sin((1:len)/200*pi)
    d <- sin(cumsum(1+ rpois(len, lambda= 2.5)))

    y1 <- ts(10*x,start=0,frequency=6)+d*rnorm(len)
    y2 <- ts(100*x,start=100,frequency=13)+10*rnorm(len)
    longtsPlot(y1,y2)

    ## plot your own legend
    longtsPlot(sunspots, upf = ceiling((end(sunspots)-start(sunspots))[1]/5),
               fpp = 1, leg = FALSE)
    legend(1750, 260, legend = "Monthly Sunspot Numbers", col = "blue", lwd = 1,
           bty = "n")

[Package IDPmisc version 1.1.20 Index]