这里是生成xts对象的图形代码:
require("quantmod")
getSymbols("SPY")
plot(Cl(SPY))
以下是生成的图表:
你能否从xts对象的绘图中删除y轴值(价格)?
提示:传递yaxt ='n'
无效。
删除 y 轴很容易,但也会删除 x 轴。有几个选项:
1) 简单 -- 使用 plot.zoo
:
plot.zoo(Cl(SPY), yaxt="n", ylab="")
2) 较难 -- 从 plot.xts
中获取数据:
plot(Cl(SPY), axes=FALSE)
axis(1, at=xy.coords(.index(SPY), SPY[, 1])$x[axTicksByTime(SPY)],
label=names(axTicksByTime(SPY)), mgp = c(3, 2, 0))
3) 修改plot.xts
使其接受要绘制的轴向量和/或TRUE
/FALSE
参数,从而实现自定义功能。
补充 Joshua 的回答,要修改 plot.xts(),你只需要修改以下部分:
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))
#This is the line to change:
if (plotYaxis) axis(2)
}
显然,您需要将参数plotYaxis = TRUE添加到函数定义中。
您也可以尝试指定标签x和y为空,或不包含任何值/字符。在您的绘图命令中使用术语xlab=""
:
例如:plot(beers,ranking,xlab="",ylab="")
通过在引号之间不包含任何内容,R不会绘制任何东西。
使用此命令,您还可以指定标签,以使x轴的标签为“beer”,请使用术语xlab="beer"
。
plot.xts
。plot.zoo
具有更好的功能,并且它可以与xts对象“无缝协作”。 - Joshua Ulrich