我在尝试绘制一些时间序列数据时遇到问题;也就是说,尝试将日期(以月为单位的增量)与实数(代表价格)相对应。
我可以只用plot(months, mydata)
绘制数据,而没有任何问题,但是它采用散点图格式。
但是,当我用ts.plot
即tsplot(months, mydata)
尝试相同操作时,出现以下错误:
Error in .cbind.ts(list(...), .makeNamesTs(...), dframe = dframe, union = TRUE) : no time series supplied
我尝试通过执行tsplot(ts(months, mydata))
来绕过此操作,但是这样我得到了一条直线(我知道这是不正确的)。
我确保months
和mydata
的长度相同
编辑:自定义x轴的含义
我需要数据按月递增(特别是从03/1998到02/2018)-因此我在R中运行以下命令:
d <- seq(as.Date("1998-03-01"), as.Date("2018-02-01"), "day")
months <- seq(min(d), max(d), "month")
现在我已经实现了每月增量,我需要上述变量months
作为时间序列图的x轴(也许更准确地说是时间索引)。
答案 0 :(得分:0)
使用软件包zoo
,您可以执行以下操作。
library(zoo)
z <- zoo(mydata, order.by = months)
labs <- seq(min(index(z)), max(index(z)), length.out = 10)
plot(z, xaxt = "n")
axis(1, at = labs, labels = format(labs, "%m/%Y"))
数据创建代码。
set.seed(1234)
d <- seq(as.Date("1998-03-01"), as.Date("2018-02-01"), "day")
months <- seq(min(d), max(d), "month")
n <- length(months)
mydata <- cumsum(rnorm(n))