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