Создание каркасного графика из x, y, z data.frame

У меня есть data.frame точек x/y/z. Я знаю, как сделать 3D-диаграмму рассеяния с помощью пакета rgl, но я хотел бы соединить каждую точку диаграммы рассеяния, чтобы создать каркас или график поверхности.

Этот код возвращает точечную диаграмму

library(rgl)
Data <- expand.grid(x=seq(0,10),y=seq(0,10))
Data$z <- Data$x^2+Data$y^2
plot3d(Data)

Пока этот код возвращает пустой график:

plot3d(Data,type='wire')

Я могу сделать сюжет, который хочу, с решеткой:

library(lattice)
wireframe(z~x+y,Data)

Я даже могу заставить его вращаться:

library(TeachingDemos)
rotate.wireframe(z~x+y,Data)

Но я предпочитаю rgl lattice, потому что он рендерится намного быстрее и позволяет вращать график с помощью мыши.

Как правильно сделать каркасную диаграмму в rgl?


person Zach    schedule 14.09.2011    source источник


Ответы (1)


Функция построения графика поверхности в rgl называется persp3d и, как и base::persp, ей требуется матрица в качестве входных данных для аргумента z.

zmat <- matrix(Data$z, 11,11)
persp3d(x=seq(0,10), y=seq(0,10), z=zmat)

Я немного покрутил этот рисунок, прежде чем захватить его с помощью программы захвата экрана, которую я использую: Screenshot

person IRTFM    schedule 15.09.2011