我有以下情节,我想与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))
这组命令还会创建一个表面(“山”部分)。我不确定如何从一组点定义这个表面(即如何创建“火山”矩阵)。此外,我对散射点不感兴趣,只有一个由一组散点确定的固定表面。