如何在R中使用plot3D绘制以下内容?

时间:2013-12-12 06:33:58

标签: r plot

我有以下情节,我想与plot3D一起使用。

我使用的命令如下:

 library("plot3D");

 N  <- 100

 xs <- runif(N) * 87

 ys <- runif(N) * 61

 zs <- runif(N)*50 + 154

# scatter + surface
 scatter3D(xs, ys, zs, ticktype = "detailed", pch = 16, 
  bty = "f", xlim = c(1, 87), ylim = c(1,61), zlim = c(94, 215))

这基本上绘制了我想要的东西(除了传说,我相信我可以删除),但不是正确的格式 - 我希望它是冲浪,而不仅仅是散点图。使用常规绘图命令,添加连接点之间的线相对容易,但我不知道在这种情况下如何操作。

scatter3D有一个“surf”参数,我相信可以用来解决这个问题,但我不确定“拟合曲面”有什么帮助,以及如何手动创建曲面。我希望能够自动绘制曲面(作为平滑函数)。

编辑:通过“surfacy”我指的是在2D绘图中通过点的平滑线的3D概括。

编辑:这是我想用上面相同代码做的一个例子。

 par(mfrow = c(1, 1))

# surface = volcano
M <- mesh(1:nrow(volcano), 1:ncol(volcano))

# 100 points above volcano 
N  <- 100

xs <- runif(N) * 87

ys <- runif(N) * 61

zs <- runif(N)*50 + 154

 # scatter + surface
 scatter3D(xs, ys, zs, ticktype = "detailed", pch = 16, 
   bty = "f", xlim = c(1, 87), ylim = c(1,61), zlim = c(94, 215), 
  surf = list(x = M$x, y = M$y, z = volcano,  
          NAcol = "grey", shade = 0.1))

这组命令还会创建一个表面(“山”部分)。我不确定如何从一组点定义这个表面(即如何创建“火山”矩阵)。此外,我对散射点不感兴趣,只有一个由一组散点确定的固定表面。

0 个答案:

没有答案