r - ts.plot() 没有根据自定义 x 轴绘制时间序列数据
问题描述
我在尝试绘制一些时间序列数据时遇到问题;即,尝试根据实数(代表价格)绘制日期(以月为单位的增量)。
我可以毫无问题地绘制数据plot(months, mydata)
,但它是散点图格式。
但是,当我尝试使用ts.plot
ie进行相同操作时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 轴(也许更准确地说,时间索引)。
解决方案
使用包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))
推荐阅读
- hangfire - Hangfire - 每次代码更改时都会出现新服务器
- c# - ASP.NET Core (MVC):无法进入控制器中的登录 HttpPost 操作
- r - gmp 中 bigz 的按位运算
- android - 通知不会出现在奥利奥下方
- angular - 如何使用“as”重新分配 templateRefVar?
- android - Xamarin.android + auth0 身份验证错误:net:ERR_UNKNOWN_URL_SCHEME
- javascript - 动态添加的功能无法正常工作 JavaScript
- python - 如何让我的函数接受不同类型的输入?
- php - PHP 检测 SQL 注入尝试
- php - mysql php仅在一行没有时返回json