Ошибка в течение l oop при попытке построения поверхности - PullRequest
0 голосов
/ 02 апреля 2020

Я пытаюсь построить трехмерную поверхность в R, но похоже, что что-то не так в циклах for, когда значения моих X и Y положительны.

Это очень простая функция и для l oop, но я пока не вижу ошибки, тем не менее, конечная поверхность отличается от той, что должна была быть (нормальная плоскость в данном случае). Есть мысли о том, чего мне не хватает?

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

text

Спасибо за помощь!

1 Ответ

1 голос
/ 02 апреля 2020

Ваш l oop должен использовать seq_along(x) и seq_along(y) вместо x и y:

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

image

...