r - twoord.plot 轴改变
问题描述
我第一次使用 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 轴不是以年为单位的。
解决方案
日期值(每个月的开始)在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.
推荐阅读
- javascript - 为什么 React 钩子版本的代码会遇到最大调用堆栈错误,但类版本不是?
- php - 即使字段不在表单请求中,如何在 laravel 模型中填充字段
- javascript - 迭代时对对象数组进行排序 - JavaScript
- visual-studio-2015 - 如何点安装fancyimpute?
- javascript - 如何让 CSS 模块在 Vue 类绑定中工作?
- google-bigquery - 每次看到该行时插入计数并使用 BigQuery SQL 按日期排序
- postman - 如何过滤 C3.ai COVID-19 数据湖治疗资产中的开发人员
- pandas - 找到最大值并分组到数据集?
- sql - 自动将电子表格单元格复制到以下行
- python - Python matplotlib分散标签颜色为白色