我有一个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
中制作线框图的正确方法是什么?
答案 0 :(得分:6)
rgl中的曲面绘制绘图函数是persp3d,就像base :: persp一样,它需要一个矩阵作为z参数的输入
zmat <- matrix(Data$z, 11,11)
persp3d(x=seq(0,10), y=seq(0,10), z=zmat)
在使用我使用的屏幕抓取程序捕获之前,我确实旋转了这个图形: