数据可视化——三维

R编程采用以下种方法对三维空间数据进行显示和可视化。主要介绍以下两个方法,因为感觉第一个很简单啦,第二个感觉很漂亮。是非常漂亮。

第一个

介绍的第一个函数叫persp()函数。这个不需要安装任何安装包。

先看一个例子:

运行example('persp')

产生的第一个图像如下:

下面一个图像是同一个数据的更加详细的视图:

最后,我们进行模拟的三维表面面积展示:

Persp 函数如下所示:

persp(x = seq(0, 1, length.out = nrow(z)), y = seq(0, 1, length.out = ncol(z)), z, xlim = range(x), ylim = range(y), zlim = range(z, na.rm = TRUE), xlab = NULL, ylab = NULL, zlab = NULL, main = NULL, sub = NULL, theta = 0, phi = 15, r = sqrt(3), d = 1, scale = TRUE, expand = 1, col = "white", border = NULL, ltheta = -135, lphi = 0, shade = NA, box = TRUE, axes = TRUE, nticks = 5, ticktype = "simple", ...)

对此函数的部分参数进行了说明:

x, y 坐标线的位置。

z 坐标值。

xlim, ylim, zlim 三个坐标轴的限值。

xlab, ylab, zlab 三个坐标轴的标签。

main, sub 主标题和副标题。

theta, phi 视角:theta 是方位角,phi 是余纬度,

r 到框中心的眼点距。

d 视觉强度调整:大于 1 的值变小,小于 1 的值变大 。

scale :布尔值,可以保持屏幕比例:“TRUE”意味着对各轴进行变换,“FALSE” 意味着保持屏幕比例。

这里借鉴一个简单、实用的例子。在例子中,将 gumbel copula 数据用作我们的 x 和 y, 将 dCopula 值用作 z。gumbelCopula 函数产生阿基米德 copula;dCopula 是 copula 的密度函 数。示例代码如下所示:

install.packages('copula')

library(copula)

gc

persp(gc,dCopula,col = 'red')

结果如下:

让我们运行一个更加简单的数据集:women

summary(women)

fun

persp(x = women$height,y = women$weight,z = outer(women$height,women$weight,fun))

第二个方法

使用cloud3d。这个需要安装vrmlgen这个包。这个产生的文件格式为VRML格式,可以使用VRML查看器来查看(我推荐使用Cortona)来查看。

第一步数据准备,下载数据:

mydata

machine-learning-databases/auto-mpg/auto-mpg.data')

colnames(mydata)

'accerlation','model.year','origin','car.name')

第二步进行画图:

install.packages('vrmlgen')

library(vrmlgen)

cloud3d(mydata$mpg ~ mydata$cylinders * mydata$weight,filename = 'out.wrl')

这些准备好你就可以看到炫目的视觉效果啦(可能会有点等待,允许加载项,打开的窗口还是IE,啧啧啧,一个很好的浏览器)

从这个图可以看出来,气缸数量越少,每加仑行驶的英里数越高!!!

而且非常明显。

当然,还有其他的信息,欢迎留言。

至于cloud3d函数的用法,请看下方:

cloud3d(x, y = NULL, z = NULL, labels = rownames(data), filename = "out.wrl", type = "vrml", pointstyle = c("s", "b", "c"), metalabels = NULL, hyperlinks = NULL, cols = rainbow(length(unique(labels))), scalefac = 4, autoscale = "independent", lab.axis = c("X-axis", "Y-axis", "Z-axis"), col.axis = "black", showaxis = TRUE, col.lab = "black", col.bg = "white", cex.lab = 1, htmlout = NULL, hwidth = 1200, hheight = 800, showlegend = TRUE, vrml_navigation = "EXAMINE", vrml_showdensity = FALSE, vrml_fov = 0.785, vrml_pos = rep(scalefac + 4, 3), vrml_dir = c(0.19, 0.45, 0.87, 2.45), vrml_transparency = 0, lg3d_ambientlight = 0.5)

这些参数和其他函数的参数十分类似,显著的差别如下所示:

• filename 参数假设您想要生成输出信息的文件。

• 出现的窗口显示器的尺寸参数。

• 有几个 VRML指令。

• 有趣的是,很多参数并不默认为“NULL”,而是实际的值。

至于怎样用,大家可以搜索一下,多用用,也欢迎留言交流。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180408G187JY00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券