尝试绘制曲面时 for 循环出错

Error in for loop while trying to plot a surface

我正在尝试在 R 中绘制一个 3d 曲面,但当我的 X 和 Y 的值均为正时,for 循环中似乎有问题。

这是一个非常简单的函数和 for 循环,但我还没有发现任何错误,最终的表面仍然与预期的不同(在本例中为正常平面)。想知道我可能遗漏了什么吗?

library(ggplot2)
library(plotly)    

x = seq(-5,5)
y = seq(-5,5)
fxy = matrix(0,length(y),length(x))
dim(fxy)

result = function(x,y){
  x+y
  }

for (j in y) {
  for (i in x) {
    fxy[i,j] = result(x[i],y[j])
  }
}

fig = plot_ly(z = ~fxy, x = x, y=y)
fig = fig %>% add_surface()

fig

感谢您的帮助!

你的循环应该使用 seq_along(x)seq_along(y) 而不是 xy:

library(ggplot2)
library(plotly)    

x = seq(-5,5)
y = seq(-5,5)
fxy = matrix(0,length(y),length(x))
dim(fxy)

result = function(x,y){
    x+y
}

for (j in seq_along(y)) {
    for (i in seq_along(x)) {
        fxy[i,j] = result(x[i],y[j])
    }
}

fig = plot_ly(z = ~fxy, x = x, y=y)
fig = fig %>% add_surface()

fig