我有以下数据:
library(rgl)
x <- c(rep(1,6),
rep(3,6),
rep(6,6),
rep(9,6),
rep(12,6))
y <- c(1.35,1.39,1.48,1.29,1.35,1.32,
NA,1.5,1.44,1.6,1.5,1.41,
NA,NA,1.72,1.56,1.6,1.55,
NA,NA,NA,1.95,1.9,1.75,
NA,NA,NA,NA,2.05,1.95)
z <- rep(1:6,5)
open3d()
plot3d(x,y,z, type = 'n')
lines3d(x,y,z)
正如我所期望的那样在3d中绘制线条。 但我不能让它绘制一个surface3d。 因为我已经阅读了一些线程,我可能需要插入我的数据。 RGL文档没有很好地涵盖这个主题。我尝试了akima,但它不接受NA的。 我想链接线以线性方式创建表面。我知道NA,所以我希望在更大的x(更多NA)的区域中表面将减少。 我需要执行插值吗?如果是,如何对我的样本数据执行此操作? 如果没有,如何在我的样本数据上实现surface3d? 感谢
答案 0 :(得分:1)
解决方案来自这个帖子: Making a wireframe plot from an x,y,z data.frame 下面的代码适用于上面提供的示例数据(只需切换x-&gt; y,y-&gt; z,z-&gt; x)
zmat <- matrix(data = z, nrow = 6, ncol = 5, byrow = FALSE)
surface3d(x = 1:6, y = c(1,3,6,9,12), z = zmat, alpha = 0.4, colour = 'blue')