twoord.plot轴更改

时间:2019-03-20 23:23:35

标签: r plot plotrix

我第一次使用twoord.plot,但在将时间序列数据集的x轴设置为年时遇到麻烦。我有两个不同比例的Y轴。这是我正在使用的代码。

#Install BatchGetSymbols
install.packages('BatchGetSymbols')
library(BatchGetSymbols)

#Get data from FRED
library(quantmod)
getSymbols('CPALTT01USM661S', src = 'FRED')

library(quantmod)
getSymbols('M2SL', src = 'FRED')

#Create data sets with equal number of observations

CPI = CPALTT01USM661S["1960-01-01/2019-01-01"]
M2 = M2SL["1960-01-01/2019-01-01"]

library(plotrix)
twoord.plot(rx = time(CPI), ry = CPI, lx = time(CPI), ly = M2, 
            main = "Money Supply and Prices",
            xlim = NULL, lylim = NULL, rylim = NULL,
            mar = c(5,4,4,4), lcol = "red", rcol = "blue", xlab = "", lytickpos = NA,
            ylab = "M2", ylab.at = NA,
            rytickpos = NA, rylab = "CPI", rylab.at = NA, lpch = 1,rpch = 2,
            type = "l", xtickpos = NULL, xticklab = NULL, 
            halfwidth = 0.4, axislab.cex = 1, do.first = NULL)

这是我得到的图表。请注意,x轴的单位不是年。

enter image description here

1 个答案:

答案 0 :(得分:0)

日期值(每个月的开始时间)在矩阵的index中,因此要提取开始的年份,每12个项目将获得一次:

twoord.plot(rx=time(CPI), ry=CPI, lx=time(CPI),ly = M2, main="Money Supply and Prices",xlim=NULL,lylim=NULL,rylim=NULL,
            mar=c(5,4,4,4),lcol="red",rcol="blue",xlab="",lytickpos=NA,ylab="M2",ylab.at=NA,
            rytickpos=NA,rylab="CPI",rylab.at=NA,lpch=1,rpch=2,
            type="l",
            xtickpos=index(CPI)[seq(1,nrow(CPI), by=12)], #tick at year start
            xticklab=format( index(CPI)[seq(1,nrow(CPI), by=12)], "%Y"), #just year
            halfwidth=0.4, axislab.cex=1,
            do.first=NULL, las=2)   # not sure why las=2 didn't seem to work.

enter image description here