xts (version 0.12.1)

plot.xts: Plotting xts Objects

Description

Plotting for xts objects.

Usage

# S3 method for 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 xts
lines(x, ..., main = "", on = 0, col = NULL, type = "l",
  lty = 1, lwd = 1, pch = 1)
# S3 method for 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.

Author

Ross Bennett

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.

References

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

See Also

addSeries, addPanel

Examples

Run this code
if (FALSE) {
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"))
}

Run the code above in your browser using DataCamp Workspace