2011-05-29 155 views
3

下面是代码生成XTS对象的曲线图:删除y轴标签对象

require("quantmod") 
getSymbols("SPY") 
plot(Cl(SPY)) 

其产生以下情节:

graph

你能从xts对象的图表中删除y轴值(价格)?

提示传递yaxt='n'不起作用

回答

4

删除Y轴很容易,但它也会消除X轴。一对夫妇的选择:

1)容易 - 用plot.zoo

plot.zoo(Cl(SPY), yaxt="n", ylab="") 

2)更难ISH - 拿块从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 so axes=接受绘制轴的矢量和/或TRUE/FALSE

+0

我最喜欢简单的解决方案。利用动物园遗产。谢谢。 – Milktrader 2011-05-29 01:35:28

+0

诚实地说,我不会太多地使用'plot.xts'。 'plot.zoo'具有更好的功能,它可以与xts对象一起工作。 – 2011-05-29 01:45:11

1

添加到约书亚的答案,修改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函数定义。

0

您还可以尝试指定x和y作为标签为空或不包含值/字符。尝试在您的绘图命令中使用术语xlab=""plot(beers,ranking,xlab="",ylab="")

由于不包括引号之间的任何内容,R不会绘制任何内容。 使用此命令,您还可以指定标签,因此要为x轴 “啤酒”制作标签,请使用术语xlab="beer"