微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从R中的时间序列数据制作3D曲面

如何解决从R中的时间序列数据制作3D曲面

| 我有一个很大的数据集,我想以此为基础制作3D曲面。我希望x轴是日期,y轴是时间(24h),z轴(高度)是我拥有的值($)。我是R的初学者,所以越简单越好! http://www.quantmod.com/examples/chartSeries3d/有一个很好的例子,但是对于我的技能水平来说,代码是复杂的! 任何帮助将不胜感激-到目前为止,我研究过的任何事情都需要对数据进行排序,这我认为不合适。     

解决方法

        options0ѭ和
wireframe()
存在几种选择,后者位于包装晶格中。 首先是一些伪数据:
set.seed(3)
dat <- data.frame(Dates = rep(seq(Sys.Date(),Sys.Date() + 9,by = 1),each = 24),Times = rep(0:23,times = 10),Value = rep(c(0:12,11:1),times = 10) + rnorm(240))
persp()
需要数据作为
x
y
网格位置以及观测矩阵
z
new.dates <- with(dat,sort(unique(Dates)))
new.times <- with(dat,sort(unique(Times)))
new.values <- with(dat,matrix(Value,nrow = 10,ncol = 24,byrow = TRUE))
并可以使用以下方式绘制:
persp(new.dates,new.times,new.values,ticktype = \"detailed\",r = 10,theta = 35,scale = FALSE)
可以使用
col
参数为构面着色。您可能比在所链接的页面上研究
chartSeries3d0()
的代码还要糟糕得多。大多数代码只是绘制适当的轴,因为
persp()
wireframe()
都无法轻松处理
Date
个对象。
wireframe()
require(lattice)
wireframe(Value ~ as.numeric(Dates) + Times,data = dat,drape = TRUE)
您需要做一些工作或整理出轴标记,因为
wireframe()
目前不适用于
\"Date\"
类的对象(因此将其转换为数字)。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。