изменение оси twoord.plot - PullRequest
       37

изменение оси twoord.plot

1 голос
/ 21 марта 2019

Я впервые использую 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)

Вот график, который я получаю. Обратите внимание, что ось х не в годах.

enter image description here

1 Ответ

0 голосов
/ 21 марта 2019

Значения даты (начала каждого месяца) находятся в 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

...