2

我有以下要与 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))

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

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

编辑:通过“表面”,我指的是通过 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))

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

4

0 回答 0