Чтобы построить поверхность плотно, вам нужно построить числовую матрицу.
Взятие функции Химмельблау в качестве теста:
f <- function(x, y) { (x^2+y-11)^2 + (x+y^2-7)^2 }
Создание x и y значений:
x <- seq(-6, 6, length = 100)
y <- x
Затем создайте z с функцией outer
.Это вернет матрицу.
z <- outer(x, y, f)
Теперь мы можем создать участок поверхности:
library(plotly)
plot_ly(x = x, y = y, z = ~z) %>% add_surface()