【问题标题】:"...argument 4 matches multiple formal arguments" - 3D surface plot with plot3D“...参数 4 匹配多个形式参数” - 带有 plot3D 的 3D 曲面图
【发布时间】:2019-04-26 04:04:42
【问题描述】:

我无法让scatter3D() 函数在 R 中工作。我想绘制一个曲面,但无法让代码运行,尽管对于我在网上找到的一些人来说它非常简单。我曾尝试阅读 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))

错误信息:

addimg(poly = NULL, plist = plist, a = c(10, 13.6, 17.2, 20.8, : 参数 4 匹配多个形式参数

【问题讨论】:

    标签: r surface plot3d


    【解决方案1】:

    我认为你需要调用 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(...) 是问题所在。

    【讨论】:

    • 谢谢克里斯托夫。这在我找到的示例中并不清楚。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-18
    • 2018-02-15
    • 1970-01-01
    相关资源
    最近更新 更多