Scatterplot3d是一个用于可视化多变量数据的R包一个三维空间。R是一种“数据分析和图形语言”。在这个本文讨论了包的特性。它是专门设计的使用已有的R和图形系统的功能,从而显示R图形系统的可扩展性。本节我们共同学习一下Scatterplot3d的基本用法。
在下图中,螺旋线是用3D高亮显示模式来计算和绘制的。在一个蓝色的盒子里有一个蓝色的格子。我们用点符号表示固体,pch = 20。
z x y scatterplot3d(x,y,z,highlight.3d=
TRUE,col.axis="green",col.grid=
"lightblue",main="Helix",pch=20)
图2显示了一个半球的点。除了角度和坐标轴的大小注释,这个数字类似于图1。
temp x y z scatterplot3d(x, y, z,highlight.3d =TRUE,angle=120,
col.axis = "blue", col.grid="lightblue",cex.axis=1.3,
cex.lab = 1.1, main = "Hemisphere",pch = 20)
通过一些简单的修改,可以生成一个3D的barplot,如图所示在这个例子中。为了使情节看起来像一个barplot,type = " h "将被绘制垂直的线到x - y平面,pch = ",以避免绘制点符号lwd = 5使线条看起来像条棒。而且,不是三个向量数据帧作为第一个参数是scatterplot3d。
my.mat dimnames(my.mat) s3d.dat rows = c(row(my.mat)), value = c(my.mat))
scatterplot3d(s3d.dat, type = "h", lwd = 5, pch = " ",x.ticklabs = colnames(my.mat), y.ticklabs = rownames(my.mat),color = grey(25:1 / 40), main = "3D barplot")
词法界定的重要性在于生成函数闭包,以提供可扩展性在第3节中讨论了scatterplot3d。一个例子如何使用在著名的(至少是对S用户)树下给出了不可见的返回函数数据。在加载树数据之后,它是由scatterplot3d绘制的,并且(不可见的返回)结果被分配到变量s3d。(蓝色)点是画出来的使用类型= " h ",可以很清楚地看到这些点的x - y位置。下一步,一个线性模型(假设:体积取决于周长和高度(树)是计算出来的。而且,这个lm对象是由返回的plane3d函数(之前被分配到s3d),它会导致回归平面。仅仅为了演示目的,在最后一步,一些红色的(在a上)假想的线穿越情节)用星号表示它的点符号。
data(trees)
s3d my.lm s3d$plane3d(my.lm)
s3d$points3d(seq(10, 20, 2), seq(85, 60, -5), seq(60, 10, -10),col = "red ", type = "h", pch =
library("mvtnorm")
x1 dens s3d text(s3d$xyz.convert(-1, 10, 0.07),labels = expression(f(x) == frac(1, sqrt((2 * pi)^n *phantom(".") * det(Sigma[X]))) * phantom(".") * exp * {bgroup("(", - scriptstyle(frac(1, 2) * phantom(".")) *(x - mu)^T * Sigma[X]^-1 * (x - mu), ")")}))
text(s3d$xyz.convert(1.5, 10, 0.05),labels = expression("with" * phantom("m") *mu == bgroup("(", atop(0, 0), ")") * phantom(".") * "," *phantom(0) *{Sigma[X] == bgroup("(", atop(3 * phantom(0) * 2,2 * phantom(0) * 3), ")")}))
for(i in length(x1):1)
s3d$points3d(rep(x1[i], length(x2)), x2, dens[i,], type = "l")
for(i in length(x2):1)
s3d$points3d(x1, rep(x2[i], length(x1)), dens[,i], type = "l")
cubedraw {
cube01 c(1,0,0),c(1,0,1),1,c(1,1,0),
c(0,1,0),c(0,1,1), c(0,1,0),0)
cub res3d$points3d(cub[ 1:11,], cex = cex, type = 'b', lty = 1)
res3d$points3d(cub[11:15,], cex = cex, type = 'b', lty = 3)
}
crgb rr cubedraw(rr)
Rrb rR cubedraw(rR)
rR$points3d(Rrb, col = rbc, pch = 16)
更多数据分析,还请继续关注R语言实战!
合作QQ:2127198282