ts.plot()未针对自定义x轴绘制时间序列数据

时间:2019-05-05 14:26:15

标签: r plot time-series

我在尝试绘制一些时间序列数据时遇到问题;也就是说,尝试将日期(以月为单位的增量)与实数(代表价格)相对应。

我可以只用plot(months, mydata)绘制数据,而没有任何问题,但是它采用散点图格式。

但是,当我用ts.plottsplot(months, mydata)尝试相同操作时,出现以下错误:

Error in .cbind.ts(list(...), .makeNamesTs(...), dframe = dframe, union = TRUE) : no time series supplied

我尝试通过执行tsplot(ts(months, mydata))来绕过此操作,但是这样我得到了一条直线(我知道这是不正确的)。

我确保monthsmydata的长度相同

编辑:自定义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轴(也许更准确地说是时间索引)。

1 个答案:

答案 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))