【问题标题】:ts.plot() not plotting Time Series data against custom x-axists.plot() 没有根据自定义 x 轴绘制时间序列数据
【发布时间】:2019-09-23 08:50:31
【问题描述】:

我在尝试绘制一些时间序列数据时遇到问题;即,尝试根据实数(代表价格)绘制日期(以月为单位的增量)。

我可以只用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 轴(也许更准确地说,时间索引)。

【问题讨论】:

  • 在问题标题中你说 custom x-axis。你能解释清楚一点吗?
  • @RuiBarradas 嗨,当然-我已经更新了问题以阐明自定义 x 轴的含义

标签: r plot time-series


【解决方案1】:

使用包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))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    相关资源
    最近更新 更多