我有一个xts系列,我试图绘制。本系列包含一个月的日内日期,周末数据存在差距。我在R中使用xyplot(点阵)绘制时间序列,我对结果非常满意。
不幸的是,情节保持了周末的差距。我想忽略周末的差距,让我的时间序列连续不断,如果有人指出我正确的方向,我会很感激。
当前命令是:
xyplot(close~MyTime, type='l', col='black',ylab='',xlab='', main='Test')
我尝试过JohnPaul的方法,它“差不多”了。存在时的标签无法正确呈现。最后一个标签只到1月3日,而实际数据一直延续到2月份。使用的命令是:
PlotOrd<-order(Mytime)
xyplot(close~PlotOrd, type='l', col='black',ylab='',xlab='', main='Close',scales=list( x=list( labels=MyTime)) )
答案 0 :(得分:2)
如果我理解这一点,你想要做的就是周末不会出现在情节中。一种方法是制作另一个向量,它是你想要close
绘制的顺序 - 一个不包含周末的向量。假设time
中没有包含周末,这应该有效:
PlotOrd<-order(Mytime)
xyplot(close~PlotOrd, type='l', col='black',ylab='',xlab='', main='Test')
这将为您提供正确的绘图,但您的x轴刻度标签将只是来自PlotOrd
的数字。如果您希望将它们保留为日期,请为x轴添加scales
参数,如下所示:
xyplot(close~PlotOrd, type='l', col='black',ylab='',xlab='', main='Test',
scales=list( x=list( labels=Mytime )) )
修改强>
控制轴标签的一种方法是使用at
参数。这里有点笨拙,我希望我能提出一个更优雅的想法,但这会有效:
xyplot(close~PlotOrd, type='l', col='black',ylab='',xlab='', main='Test',
scales=list( x=list(at=c(50,100,150,200), labels=Mytime[c(50,100,150,200)] )) )
这将在观察点50,100,150和200处设置刻度,并将MyTime
的相应值作为标签。缺点是你必须自己写入滴答声。您可以添加一些代码来生成一系列值。假设您每15天需要一个标签。如果你弄清楚对应的测量数量,你可以制作一个相距很远的数字序列(称之为MyTicks
)。然后输入at=MyTicks
和labels=MyTime[MyTicks]
。格子只为你选择蜱虫会更好......