Skip to content

Instantly share code, notes, and snippets.

@xuanlongma
Created March 15, 2013 02:21
Show Gist options
  • Save xuanlongma/5167038 to your computer and use it in GitHub Desktop.
Save xuanlongma/5167038 to your computer and use it in GitHub Desktop.
add "col" (color) arguments to plot.xts
## Arthur: Roman Luštrik
## http://stackoverflow.com/questions/9017070/set-the-color-in-plot-xts
plot.xts2 <- function (x, y = NULL, type = "l", auto.grid = TRUE, major.ticks = "auto",
minor.ticks = TRUE, major.format = TRUE, bar.col = "grey",
candle.col = "white", ann = TRUE, axes = TRUE, col = "black", ...)
{
series.title <- deparse(substitute(x))
ep <- axTicksByTime(x, major.ticks, format = major.format)
otype <- type
if (xts:::is.OHLC(x) && type %in% c("candles", "bars")) {
x <- x[, xts:::has.OHLC(x, TRUE)]
xycoords <- list(x = .index(x), y = seq(min(x), max(x),
length.out = NROW(x)))
type <- "n"
}
else {
if (NCOL(x) > 1)
warning("only the univariate series will be plotted")
if (is.null(y))
xycoords <- xy.coords(.index(x), x[, 1])
}
plot(xycoords$x, xycoords$y, type = type, axes = FALSE, ann = FALSE,
col = col, ...)
if (auto.grid) {
abline(v = xycoords$x[ep], col = "grey", lty = 4)
grid(NA, NULL)
}
if (xts:::is.OHLC(x) && otype == "candles")
plot.ohlc.candles(x, bar.col = bar.col, candle.col = candle.col,
...)
dots <- list(...)
if (axes) {
if (minor.ticks)
axis(1, at = xycoords$x, labels = FALSE, col = "#BBBBBB",
...)
axis(1, at = xycoords$x[ep], labels = names(ep), las = 1,
lwd = 1, mgp = c(3, 2, 0), ...)
axis(2, ...)
}
box()
if (!"main" %in% names(dots))
title(main = series.title)
do.call("title", list(...))
assign(".plot.xts", recordPlot(), .GlobalEnv)
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment