从二维矩阵生成3D表面图

14

在R语言中使用二维矩阵,如何创建一个三维曲面图,其中x轴为列,y轴为行,z轴的高度由数值表示?

在下面的示例中,x轴的值将为1到5,y轴的值将为1到5,数字将表示z轴的高度/值。

> m<-matrix(rnorm(25),nrow=5,ncol=5)
> m
             [,1]       [,2]       [,3]        [,4]       [,5]
[1,] -1.495513045  0.8000040 -1.1499261  1.65661138  0.8140510
[2,] -1.150018195 -0.7582933  0.8306922  0.16026908  0.3913198
[3,] -0.852609406  0.5525621  0.3585986 -0.45054768 -1.2259927
[4,] -0.001926297 -0.5857351  2.1518281  0.03192463  0.2065039
[5,] -1.641128610  0.4333973 -1.0616628 -0.92143426 -0.9598991
2个回答

10

使用rgl包可以帮助您入门...

require(rgl)
#  open renderer
open3d()
#  plot surface
rgl.surface( 1:10 , 1:10 , runif(100))
#  Export to png
rgl.snapshot( "sample.png" , fmt="png", top=TRUE )

在此输入图片描述


9

要获取包含Z值的2D矩阵的3D表面绘图,请尝试以下方法:

require(plot3D)

persp3D(z = TheMatrix2D, theta = 120)

使用theta调整视角。根据我的数据,我得到了以下的图表:

enter image description here


2
这似乎是更好的语法(因为它接受矩阵作为输入),并且具有更好的默认设置。 - Paul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接