每当我尝试用传递给参数col和lwd的值绘制xts对象时,它都会返回一个错误,说参数col(如果注释掉col,则是lwd)匹配多个值。下面是函数的样子-
data是一个XTS对象
plot(data, lwd=2, col="red")
安装xtsExtra似乎可以解决问题,但我不明白为什么。
xts:::plot.xts
在构造轴(col
, lwd
, las
和mgp
)时指定了几个参数,但它也将...
传递给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上。)