Plotting for xts objects.
# 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)A xts object.
Not used, always NULL.
An ISO8601-style subset string.
Character vector of expressions to plot as panels.
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.
Color palette to use.
Color for positive bars when type = "h".
Color for negative bars when type = "h".
Background color of plotting area, same as in par().
The type of plot to be drawn, same as in plot().
Set the line type, same as in par().
Set the line width, same as in par().
Set the line end style, same as in par().
Main plot title.
Should the timespan of the series be shown in the top right corner of the plot?
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.
Should the y-axis be in log scale? Default FALSE.
The range of the y axis.
Should 'ylim' be the same for every panel? Default TRUE.
Add y-axis labels to the left side of the plot?
Add y-axis labels to the right side of the plot?
Desired number of y-axis grid lines. The actual number of
grid lines is determined by the n argument to pretty().
Period specifying locations for major tick marks and labels on the x-axis. See Details for possible values.
Period specifying locations for minor tick marks on the
x-axis. When NULL, minor ticks are not drawn. See details for possible
values.
Period specifying locations for vertical grid lines. See details for possible values.
Line width of the grid.
Line type of the grid.
Color of the grid.
Color of the axis labels.
Label format to draw lower frequency x-axis ticks and
labels passed to axTicksByTime()
Color for secondary x-axis grid.
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.
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.
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.
the plotting character to use, same as in 'par'
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().
based on chart_Series() in quantmod
written by Jeffrey A. Ryan
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"))
} # }