“...参数 4 匹配多个正式参数”- 3D 表面图与 plot3D
"...argument 4 matches multiple formal arguments" - 3D surface plot with plot3D
我无法在 R 中使用 scatter3D()
函数。我想绘制一个曲面,但无法获得 运行 的代码,尽管这对某些人来说非常简单网上找到的。我试过阅读 CRAN 代码文档,但我无处可去。我希望我的代码为 运行.
基本上我输入的某个变量有问题,但我看不到哪里。我认为它可能隐藏在一个函数中,错误消息实际上不是给我的。
如有任何帮助,我们将不胜感激。
代码:
library("plot3D")
w <- 1:100
sigma <- 5
x <- w + rnorm(w, w, 2*sigma)
y <- w + rnorm(w, w, sigma)
z<- w + rnorm(w, w, 3*sigma)
a <- c()
for (i in 1:10){
a <- c(a, rep(10*i, times = 10))
}
b <- rep(seq(10, 100, 10), times = 10)
ratio = 0.4
d = ratio*a + (1 - ratio)*b + rnorm(100, 0, 10)
fit <- lm(d ~ a + b)
grid.lines = 26
a.pred <- seq(min(a), max(a), length.out = grid.lines)
b.pred <- seq(min(b), max(b), length.out = grid.lines)
ab <- expand.grid(a = a.pred, b = b.pred)
d.pred <- matrix(predict(fit, newdata = ab),
nrow = grid.lines, ncol = grid.lines)
fitpoints <- predict(fit)
scatter plot with regression plane
scatter3D(a,b,d, pch = 18, cex = 2,
theta = 20, phi = 20,
surf = list(a=a.pred, b=b.pred, d=d.pred,
facets = F, fit = fitpoints))
错误信息:
Error in addimg(poly = NULL, plist = plist, a = c(10, 13.6, 17.2, 20.8, :
argument 4 matches multiple formal arguments
我认为你需要调用 x、y 和 z 轴:
# scatter plot with regression plane
scatter3D(a,b,d, pch = 18, cex = 2,
theta = 20, phi = 20,
surf = list(x=a.pred, y=b.pred, z=d.pred,
facets = F, fit = fitpoints))
这对我有效。
关于错误修复的评论:
- 运行 您的代码逐行 (RStudio Ctrl + Enter)。然后你意识到你的
scatter3D
是问题所在。
- 删除参数直到命令生效。在您的情况下,这表明
surf = list(...)
是问题所在。
我无法在 R 中使用 scatter3D()
函数。我想绘制一个曲面,但无法获得 运行 的代码,尽管这对某些人来说非常简单网上找到的。我试过阅读 CRAN 代码文档,但我无处可去。我希望我的代码为 运行.
基本上我输入的某个变量有问题,但我看不到哪里。我认为它可能隐藏在一个函数中,错误消息实际上不是给我的。
如有任何帮助,我们将不胜感激。
代码:
library("plot3D")
w <- 1:100
sigma <- 5
x <- w + rnorm(w, w, 2*sigma)
y <- w + rnorm(w, w, sigma)
z<- w + rnorm(w, w, 3*sigma)
a <- c()
for (i in 1:10){
a <- c(a, rep(10*i, times = 10))
}
b <- rep(seq(10, 100, 10), times = 10)
ratio = 0.4
d = ratio*a + (1 - ratio)*b + rnorm(100, 0, 10)
fit <- lm(d ~ a + b)
grid.lines = 26
a.pred <- seq(min(a), max(a), length.out = grid.lines)
b.pred <- seq(min(b), max(b), length.out = grid.lines)
ab <- expand.grid(a = a.pred, b = b.pred)
d.pred <- matrix(predict(fit, newdata = ab),
nrow = grid.lines, ncol = grid.lines)
fitpoints <- predict(fit)
scatter plot with regression plane
scatter3D(a,b,d, pch = 18, cex = 2,
theta = 20, phi = 20,
surf = list(a=a.pred, b=b.pred, d=d.pred,
facets = F, fit = fitpoints))
错误信息:
Error in addimg(poly = NULL, plist = plist, a = c(10, 13.6, 17.2, 20.8, : argument 4 matches multiple formal arguments
我认为你需要调用 x、y 和 z 轴:
# scatter plot with regression plane
scatter3D(a,b,d, pch = 18, cex = 2,
theta = 20, phi = 20,
surf = list(x=a.pred, y=b.pred, z=d.pred,
facets = F, fit = fitpoints))
这对我有效。
关于错误修复的评论:
- 运行 您的代码逐行 (RStudio Ctrl + Enter)。然后你意识到你的
scatter3D
是问题所在。 - 删除参数直到命令生效。在您的情况下,这表明
surf = list(...)
是问题所在。