在R中的同一图上绘制不连续的xts时间序列?

时间:2012-11-28 18:27:26

标签: r merge plot xts

我希望能够在R的同一屏幕上绘制几个不连续时间序列的线图,并且无法立即显示所有数据:

require(xts)
require(xtsExtra)
df1=data.frame(a=1:30,b=3*1:30)
df1$b[2*1:15]=NA
df1A_xts=xts(df1,ISOdate(1900+1:30,1,1))
df1B_xts=xts(df1,ISOdate(1900+2*1:30,2,1))
df1_xts_merge=merge.xts(df1A_xts,df1B_xts)

当然,当我绘制点图时,一切都显示好了:

plot.xts(df1_xts_merge,screens=1,type="p",auto.legend=TRUE)

但是当我尝试将一个或多个系列作为线条时,不连续性会造成麻烦,例如:

plot.xts(df1_xts_merge,screens=1,auto.legend=TRUE)

如何在同一组轴上将这些系列中的每一个绘制成一条连续线?

1 个答案:

答案 0 :(得分:3)

xts和zoo的行为与默认的绘图方法一致:

matplot(df1_xts_merge,type="l")

default plotting via matplot

您似乎想要通过xts对象中的点插入的线条图,在这种情况下na.approxna.spline会有所帮助:

plot(na.approx(df1_xts_merge),screens=1,auto.legend=TRUE)

xtsExtra::plot.xts with na.approx