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)),
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 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
A xts object.
- y
Not used, always
NULL.- ...
- 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. WhenTRUE, 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. WhenFALSE(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
nargument topretty().- 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
NULLdoes 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. DefaultFALSE.- 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 ofonis checked for the default behavior to add to the last active panel.- pch
the plotting character to use, same as in 'par'
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
Examples
if (FALSE) { # \dontrun{
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"))
} # }