我试图绘制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)
答案 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)
,并提供:
现在经营现金线被砍掉了,因为它的数据可以追溯到1994年。您还可以看到数据点与年份开始对齐。
我对您的示例进行的唯一更改是调用数据data
而不是data1
,并使用getSymbols
而不是getSymbol
。