从x,y,z data.frame制作线框图

Zac*_*ach 3 3d graphics plot r

我有一个x/y/z点的data.frame.我知道如何使用rgl包制作三维散点图,但我想连接散点图中的每个点来制作线框或曲面图.

此代码返回散点图

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

虽然此代码返回一个空白图:

plot3d(Data,type='wire')
Run Code Online (Sandbox Code Playgroud)

我可以用格子制作我想要的情节:

library(lattice)
wireframe(z~x+y,Data)
Run Code Online (Sandbox Code Playgroud)

我甚至可以让它旋转:

library(TeachingDemos)
rotate.wireframe(z~x+y,Data)
Run Code Online (Sandbox Code Playgroud)

但我更喜欢它rgl,lattice因为它渲染速度更快,并允许您使用鼠标旋转绘图.

什么是制作线框图的正确方法rgl

42-*_*42- 6

rgl中的曲面绘制绘图函数是persp3d,就像base :: persp一样,它需要一个矩阵作为z参数的输入

zmat <- matrix(Data$z, 11,11)
persp3d(x=seq(0,10), y=seq(0,10), z=zmat)
Run Code Online (Sandbox Code Playgroud)

在使用我使用的屏幕抓取程序捕获它之前,我确实旋转了这个图形: 截图