![](/img/trans.png)
[英]Plotly 3D surface plot in R time for series data
[英]Making a 3D surface from time series data in R
我有一個很大的數據集,我想以此為基礎制作3D曲面。 我希望x軸是日期,y軸是時間(24h),z軸(高度)是我擁有的值($)。 我是R的初學者,所以越簡單越好!
http://www.quantmod.com/examples/chartSeries3d/有一個很好的例子,但是對於我的技能水平來說,代碼是復雜的!
任何幫助將不勝感激-到目前為止,我研究過的任何事物都需要對數據進行排序,我認為這不合適。
幾個選項展示自己, persp()
和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"
類的對象(因此將其強制轉換為數字)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.