R -绘制XTS对象-传递LWD值和col参数创建错误



每当我尝试用传递给参数col和lwd的值绘制xts对象时,它都会返回一个错误,说参数col(如果注释掉col,则是lwd)匹配多个值。下面是函数的样子-

data是一个XTS对象

plot(data, lwd=2, col="red")

安装xtsExtra似乎可以解决问题,但我不明白为什么。

xts:::plot.xts在构造轴(col, lwd, lasmgp)时指定了几个参数,但它也将...传递给axis调用。例如:

axis(1, at = xycoords$x, labels = FALSE, col = "#BBBBBB", ...)

col已经指定了,所以如果你也指定了它,它会通过...传递给axis,现在有两个col参数指定给axis调用。

这不是xtsExtra:::plot.xts的问题,因为在...传递给axis调用之前,这些参数已经从...中删除了。

我的解决方案是通过type='n',然后调用lines:

require(quantmod)
getSymbols('CPIAUCSL',src='FRED')
xts::plot.xts(CPIAUCSL, type='n')
lines(CPIAUCSL, lwd=3, col='darkgoldenrod')

这不需要xtsExtra包,它会对情节进行其他更改,并且(可能)不会被积极维护。(至少它不通过包管理器安装,今天,在R 3.1.1上。)