R: Plotting xts Objects

plot.xts {xts} | R Documentation

## Plotting xts Objects

### Description

Plotting for xts objects.

### Usage

    ## S3 method for class 'xts'
    plot(x, y = NULL, ..., subset = "",
      panels = NULL, multi.panel = FALSE, col = 1:8, up.col = NULL,
      dn.col = NULL, bg = "#FFFFFF", type = "l", lty = 1, lwd = 2, lend = 1,
      main = deparse(substitute(x)), observation.based = FALSE,
      ylim = NULL, yaxis.same = TRUE, yaxis.left = TRUE, yaxis.right = TRUE,
      major.ticks = "auto", minor.ticks = NULL,
      grid.ticks.on = "auto", grid.ticks.lwd = 1, grid.ticks.lty = 1,
      grid.col = "darkgray", labels.col = "#333333", format.labels = TRUE,
      grid2 = "#F5F5F5", legend.loc = NULL)
    ## S3 method for class 'xts'
    lines(x, ..., main = "", on = 0, col = NULL, type = "l",
      lty = 1, lwd = 1, pch = 1)
    ## S3 method for class 'xts'
    points(x, ..., main = "", on = 0, col = NULL, pch = 1)

### Arguments

`x` | xts object
`y` | NULL, not used
`...` | any passthrough graphical arguments for `lines` and `points`
`subset` | character vector of length one of the subset range using subsetting as in `xts`
`panels` | character vector of expressions to plot as panels
`multi.panel` | TRUE/FALSE or an integer less than or equal to the number of columns in the data set. If TRUE, each column of the data is plotted in a separate panel. For example, if `multi.panel = 2`, then the data will be plotted in groups of 2 columns and each group is plotted in a separate panel.
`col` | color palette to use, set by default to rational choices
`up.col` | color for positive bars if `type="h"`
`dn.col` | color for negative bars if `type="h"`
`bg` | background color of plotting area, same as in `par`
`type` | the type of plot to be drawn, same as in `plot`
`lty` | set the line type, same as in `par`
`lwd` | set the line width, same as in `par`
`lend` | set the line end style, same as in `par`
`main` | main title
`observation.based` | TRUE/FALSE (default FALSE). If `TRUE`, the x-axis is drawn based on observations in the data. If `FALSE`, the x-axis is drawn based on the time index of the data.
`ylim` | the range of the y axis
`yaxis.same` | TRUE/FALSE. If TRUE, the y axis is drawn with the same ylim for multiple panels
`yaxis.left` | if TRUE, draws the y axis on the left
`yaxis.right` | if TRUE, draws the y axis on the right
`major.ticks` | period that specifies where tick marks and labels will be drawn on the x-axis. See Details for possible values.
`minor.ticks` | period that specifies where minor ticks on will be drawn on the x-axis. If `NULL`, minor ticks are not drawn. See Details for possible values.
`grid.ticks.on` | period that specifies where vertical grid lines will be drawn. See Details for possible values.
`grid.ticks.lwd` | line width of the grid
`grid.ticks.lty` | line type of the grid
`grid.col` | color of the grid
`labels.col` | color of the axis labels
`format.labels` | label format to draw lower frequency x-axis ticks and labels passed to `axTicksByTime`
`grid2` | color for secondary x axis grid
`legend.loc` | places a legend into one of nine locations on the chart: bottomright, bottom, bottomleft, left, topleft, top, topright, right, or center. Default NULL does not draw a legend.
`pch` | the plotting character to use, same as in `par`.
`on` | panel number to draw on. A new panel will be drawn if `on=NA`. The default, `on=0`, will add to the active panel. The active panel is defined as the panel on which the most recent action was performed. Note that only the first element of `on` is checked for the default behavior to add to the last active panel.

### Details

Possible values for arguments `major.ticks`, `minor.ticks`, and `grid.ticks.on` include ‘auto’, ‘minute’, ‘hours’, ‘days’, ‘weeks’, ‘months’, ‘quarters’, and ‘years’. The default is ‘auto’, which attempts to determine sensible locations from the periodicity and locations of observations. The other values are based on the possible values for the `ticks.on` argument of `axTicksByTime`.

### Author(s)

Ross Bennett

### References

based on `chart_Series` in the `quantmod` package by Jeffrey A. Ryan

### See Also

`addSeries`, `addPanel`

### Examples

    ## Not run:
    data(sample_matrix)
    sample.xts <- as.xts(sample_matrix)

    # plot the Close
    plot(sample.xts[,"Close"])

    # plot a subset of the data
    plot(sample.xts[,"Close"], subset="2007-04-01/2007-06-31")

    # function to compute simple returns
    simple.ret <- function(x, col.name){
      x[,col.name] / lag(x[,col.name]) - 1
    }

    # plot the close and add a panel with the simple returns
    plot(sample.xts[,"Close"])
    R <- simple.ret(sample.xts, "Close")
    lines(R, type="h", on=NA)

    # add the 50 period simple moving average to panel 1 of the plot
    library(TTR)
    lines(SMA(sample.xts[,"Close"], n = 50), on=1, col="blue")

    # add month end points to the chart
    points(sample.xts[endpoints(sample.xts[,"Close"], on = "months"), "Close"],
           col="red", pch=17, on=1)

    # add legend to panel 1
    addLegend("topright", on=1,
              legend.names = c("Close", "SMA(50)"),
              lty=c(1, 1), lwd=c(2, 1),
              col=c("black", "blue", "red"))

    ## End(Not run)

[Package xts version 0.12.1 Index]