【问题标题】:Making a wireframe plot from an x,y,z data.frame从 x,y,z data.frame 制作线框图
【发布时间】:2011-09-14 18:31:16
【问题描述】:

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

此代码返回散点图

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 中制作线框图的正确方法是什么?

【问题讨论】:

    标签: r graphics plot 3d


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-11-24
      • 2021-09-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-26
      • 1970-01-01
      相关资源
      最近更新 更多