Learn R Programming

xts (version 0.14.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)),
  main.timespan = TRUE,
  observation.based = FALSE,
  log = FALSE,
  ylim = NULL,
  yaxis.same = TRUE,
  yaxis.left = TRUE,
  yaxis.right = TRUE,
  yaxis.ticks = 5,
  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,
  extend.xaxis = FALSE
)

# 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

A xts object.

y

Not used, always NULL.

...

Any passthrough arguments for lines() and points().

subset

An ISO8601-style subset string.

panels

Character vector of expressions to plot as panels.

multi.panel

Either TRUE, FALSE, or an integer less than or equal to the number of columns in the data set. When TRUE, each column of the data is plotted in a separate panel. When an integer 'n', the data will be plotted in groups of 'n' columns per panel and each group will be plotted in a separate panel.

col

Color palette to use.

up.col

Color for positive bars when type = "h".

dn.col

Color for negative bars when 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 plot title.

main.timespan

Should the timespan of the series be shown in the top right corner of the plot?

observation.based

When TRUE, all the observations are equally spaced along the x-axis. When FALSE (the default) the observations on the x-axis are spaced based on the time index of the data.

log

Should the y-axis be in log scale? Default FALSE.

ylim

The range of the y axis.

yaxis.same

Should 'ylim' be the same for every panel? Default TRUE.

yaxis.left

Add y-axis labels to the left side of the plot?

yaxis.right

Add y-axis labels to the right side of the plot?

yaxis.ticks

Desired number of y-axis grid lines. The actual number of grid lines is determined by the n argument to pretty().

major.ticks

Period specifying locations for major tick marks and labels on the x-axis. See Details for possible values.

minor.ticks

Period specifying locations for minor tick marks on the x-axis. When NULL, minor ticks are not drawn. See details for possible values.

grid.ticks.on

Period specifying locations for vertical grid lines. 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.

extend.xaxis

When TRUE, extend the x-axis before and/or after the plot's existing time index range, so all of of the time index values of the new series are included in the plot. Default FALSE.

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.

pch

the plotting character to use, same as in 'par'

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 quantmod written 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 DataLab