我需要通过时间绘制一些2d数据(因此3d)

问题描述 投票:6回答:2

我有一个xts数据对象的时间:

> head(vixData[,2:8], 5)
              F1    F2    F3    F4    F5    F6    F7
2009-06-08 30.25 32.00 31.70 31.75 31.65 30.85 29.95
2009-06-09 29.10 30.95 30.95 31.15 31.10 30.40 29.45
2009-06-10 29.10 31.20 31.30 31.45 31.50 30.75 29.95
2009-06-11 28.10 30.60 30.75 30.90 31.00 30.20 29.25
2009-06-12 28.35 29.95 30.10 30.45 30.50 29.90 29.05

F1-F7将形成一条曲线,如下所示:

plot(1:7, vixData[399,2:8], type = 'o', pch = 6)

我想通过时间来做这件事。 xts对象的行是每天的值,它们生成曲线。我希望生成这样的东西:

我正在尝试使用plot3D和surf3D,但我无法理解文档,或者如何将数据帧转换为surf3D想要的内容。任何想法或更好的包装建议?

我已经尝试按照评论中的建议使用lattice :: wireframe,但我得到以下内容:

curveData <- vixData[-(1:100),2:8, drop = FALSE]
wireframe(t(as.matrix(curveData)), shade = TRUE, scales = list(arrows = FALSE),
      aspect = c(0.65, 0.25), drape = TRUE, 
      zlab = "Level", xlab = "Contract", ylab = "Time", panel.aspect = .75)

这看起来非常接近!!但是 - 我希望我可以旋转图像并沿“时间”轴延伸一些图像,以提高清晰度。那有参数吗?我在文档中找不到它。

r plot 3d
2个回答
3
投票

chartSeries3d的源文件应该有所帮助。此外,您可能对此感兴趣

source("http://www.quantmod.com/examples/chartSeries3d/chartSeries3d.alpha.R")
library("xts")
data("sample_matrix")
chartSeries3d0( as.xts( sample_matrix ), col=c("lightblue","blue"))


-1
投票

Excel 3D曲面图是您的最佳选择。甚至Excel 2007都有该图表。你可以旋转轴,轻松改变颜色

click volcano data example

© www.soinside.com 2019 - 2024. All rights reserved.