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

时间:2011-09-14 18:31:16

标签: r graphics plot 3d

我有一个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)

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

plot3d(Data,type='wire')

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

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

我甚至可以让它旋转:

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

但我更喜欢rgl而不是lattice,因为它渲染速度更快,让您可以用鼠标旋转绘图。

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

1 个答案:

答案 0 :(得分:6)

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

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

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