分享

R语言三维图的绘制

 terminator_523 2019-12-02

包的安装就不赘述了:

install.packages(“scatterplot3d”)

接下来我们看下它里面的函数,其实这个包就一个函数scatterplot3d。

其中主要的参数:

Xlim,ylim,zlim 主要是标注坐标轴范围的。

Color主要指的每个点的颜色,如果不分组那就直接一个颜色就看可以,如果颜色分组,那需要标注每一个样本的颜色。

Type 主要是设置点绘制形式,p-点;h-柱子;l-线,就是将所有点连起来。

Lwd 主要是设置竖线的粗细。

接下来我们就看下包自带的五个例子:

1. 基础的函数三维图绘制:

z<- seq(-10, 10, 0.01)  x<- cos(z)  y<- sin(z) scatterplot3d(x, y, z, col.axis='blue',     col.grid='lightblue', main='scatterplot3d - 1',pch=20)

2. 单纯的点的三维图绘制:

temp <- seq(-pi, 0, length = 50) x<- c(rep(1, 50) %*% t(cos(temp))) y<- c(cos(temp) %*% t(sin(temp))) z<- c(sin(temp) %*% t(sin(temp))) scatterplot3d(x, y, z, col.axis='blue',col.grid='lightblue', main='scatterplot3d - 2', pch=20)

3. 对于不同的分组的数据的多颜色赋值:

temp <- seq(-pi, 0, length = 50)  x<- c(rep(1, 50) %*% t(cos(temp)))  y<- c(cos(temp) %*% t(sin(temp)))  z<- 10 * c(sin(temp) %*% t(sin(temp))) color <- rep('green', length(x))###颜色赋值 temp <- seq(-10, 10, 0.01)  x<- c(x, cos(temp))  y<- c(y, sin(temp))  z<- c(z, temp) color <- c(color, rep('red', length(temp)))####颜色赋值 scatterplot3d(x, y, z, color, pch=20, zlim=c(-2, 10),main='scatterplot3d - 3')

4. 添加竖线的三维图的绘制:

my.mat <- matrix(runif(25), nrow=5) dimnames(my.mat) <- list(LETTERS[1:5], letters[11:15]) my.mat # the matrix we want to plot ...

如果不是x,y,z格式的输入数据也可以参考下面的data.frame进行数据的整体输入

 s3d.dat <- data.frame(cols=as.vector(col(my.mat)),rows=as.vector(row(my.mat)), value=as.vector(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='scatterplot3d -4')

5. 如何添加拟合的平面图:

data(trees) s3d<- scatterplot3d(trees, type='h', highlight.3d=TRUE, angle=55, scale.y=0.7, pch=16, main='scatterplot3d - 5') #Now adding some points to the 'scatterplot3d' s3d$points3d(seq(10,20,2), seq(85,60,-5), seq(60,10,-10),col='blue', type='h', pch=16) #Now adding a regression plane to the 'scatterplot3d' attach(trees) my.lm <- lm(Volume ~ Girth + Height) s3d$plane3d(my.lm, lty.box = 'solid')

s3d$plane3d(my.lm, lty.box ='solid',col='green')

再高级点还可以直接设置平面的填充颜色:

s3d$plane3d(my.lm, lty.box ='solid',col='green',draw_polygon = T)

并且能够修改平面的颜色:

当然,拟合的平面的颜色也是可以进行修改的:需要在s3d$plane3d子函数中进行设置;至此基本的此包的所有功能基本掌握。其他的美观度那就需要自己去体会了。

欢迎大家学习交流!

------------------------------------------------------------------------

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约