Итак, у меня есть этот код, который дает точную поверхность
f = function(x, y){
z = ((x^2)+(3*y^2))*exp(-(x^2)-(y^2))
}
plot3d(f, col = colorRampPalette(c("blue", "white")),
xlab = "X", ylab = "Y", zlab = "Z",
xlim = c(-3, 3), ylim = c(-3, 3),
aspect = c(1, 1, 0.5))
, дающую следующий график: Теперь у меня есть некоторый код, который выполняет алгоритм метрополии случайного блуждания, чтобы воспроизвести вышеупомянутое изображение.Я думаю, что это работает, как будто я делаю еще один график из этих рассчитанных значений, я получаю следующее изображение с 500 точками.Вот код
open3d()
plot3d(x0, y0, f(x0, y0), type = "p")
, который дает следующий график: Я знаю, что трудно смотреть на это неподвижное изображение, но возможность поворота выборки работает.
Теперь вотмой вопрос: как я могу использовать plot3d()
, чтобы у меня была поверхность, соединяющая все эти точки и дающая более неровное представление точного графика?Или как я могу иметь каждую точку на оси z в виде стержня от плоскости xy?Я просто хочу что-то более трехмерное, чем точки, и я не могу найти, как это сделать.
Спасибо за помощь