在R中绘制多个时间序列

时间:2014-07-26 03:30:02

标签: r

我试图绘制BBBY(Bed Bath& Beyond)的经营现金流量和股票价格。

2x问题! 1)价格变量是每日,而我的经营现金流量变量是年度变量。当我绘制两个图表时,图表从未正确排列。如何绘制两个不同频率的时间序列,并将年度运营现金流量数据点与图表上的每日变量对齐。 2)如何仅在图表右侧获取操作现金流的轴,仅在左侧获得股票价格。每当我尝试绘制两个变量时,操作现金流都会粘贴在现有股票价格的顶部,最终会出现混乱的左轴。救命!!! (谢谢你)

setInternet2(TRUE)
con = gzcon(url('http://www.systematicportfolio.com/sit.gz', 'rb'))
    source(con)
close(con)

library("quantmod")
getSymbol("BBBY",from="1-1-2000")
data1=fund.data("BBBY",30,"annual",1)

operatingcash=as.numeric(gsub(",","",data[169,]))
date.year=seq(as.Date("1994-01-01"),length=22,by="years")

plot(BBBY)
par(new=T)
axis(4)
plot(date.year,operatingcash,type="l",axis=4)

1 个答案:

答案 0 :(得分:2)

首先,绘制主要系列:

plot(BBBY)

然后通过更改par()$usr中的值3和4来重置Y限制:

par(usr="[<-"(par()$usr,3:4,range(operatingcash)))

现在添加营业现金。请注意转换为as.POSIXct,因为那是时间 系列图设置x轴:

lines(as.POSIXct(date.year),operatingcash,col="red")

现在添加正确的轴和标签:

axis(4,col="red",col.axis="red")
mtext(4,col="red",text="Operating Cash",line=3)

,并提供:

Two plots

现在经营现金线被砍掉了,因为它的数据可以追溯到1994年。您还可以看到数据点与年份开始对齐。

我对您的示例进行的唯一更改是调用数据data而不是data1,并使用getSymbols而不是getSymbol