## 3D PCA
### 应用场景
3D PCA和2D PCA本质类似,可能看上去更酷炫些
> 所有数据和2D一样
```R
# 增加一个pro3
library(gmodels)
mat_a <- t(as.matrix(rt))
mat_pca <- fast.prcomp(mat_a, scale = T) # do PCA
sum_a <- summary(mat_pca)
tmp <- sum_a$importance # a include 4 sections which contain importance
pro1 <- as.numeric(sprintf("%.3f", tmp[2,1]))*100
pro2 <- as.numeric(sprintf("%.3f", tmp[2,2]))*100 # fetch the proportion of PC1 and PC2
pro3 <- as.numeric(sprintf("%.3f", tmp[2,3]))
pc <- as.data.frame(sum_a$x) # convert to data.frame
# 增加一个zlab
pc$group <- c(rep('tumor', 57), rep('normal', 57))
pc$color <- c(rep('#6D9EC1', 57), rep('#E46726', 57))
pc$group <- factor(pc$group, levels = unique(pc$group))
xlab <- paste("PC1(", pro1, "%)", sep = "")
ylab <- paste("PC2(", pro2, "%)", sep = "")
zlab <- paste("PC3(", pro3, "%)", sep = "")
```
> 利用scatter3D作图
```R
library(plot3D)
# 基本展示
scatter3D(x = pc$PC1, y = pc$PC2, z = pc$PC3,
xlab = xlab, ylab = ylab, zlab = zlab, colkey = FALSE)
# 改变下颜色及分组
scatter3D(x = pc$PC1, y = pc$PC2, z = pc$PC3,
xlab = xlab, ylab = ylab, zlab = zlab,
bty = 'g', cex = 1.5, pch = 20,
col = as.character(unique(pc$color)),
colvar = as.integer(pc$group),
groups = pc$group, colkey = FALSE)
```
![PCA3](http://kancloud.nordata.cn/2018-12-30-074414.png)
![PCA4](http://kancloud.nordata.cn/2018-12-30-74415.png)
- 智汇医圈
- 第一章 前言
- 1.1 简介
- 1.2 制作该教程的目的
- 1.3 学习该教程需要掌握的基础知识
- 1.4 该教程适用人群
- 第二章 散点图(scatter plot)
- 2.1 基本的散点图
- 2.2 3D 散点图
- 第三章 线图(line plot)
- 3.1 基本的线图
- 第四章 箱型图(boxplot)
- 4.1 基本的箱型图
- 4.2 图形参数调整
- 4.3 多分组箱型图
- 4.4 小提琴图
- 第五章 密度图(density plot)
- 5.1 基本的密度图
- 第六章 热图(Heatmap)
- 6.1 基本的热图
- 6.2 ggplot2 heatmap
- 6.3 相关性热图
- 第七章 主成分分析(PCA)
- 7.1 2D PCA
- 7.2 3D PCA
- 第八章 ROC 曲线
- 8.1 基本的 ROC 曲线
- 第九章 生存分析(KM plot)
- 9.1 基本的生存分析
- 第十章 KEGG 和 GO 分析
- 10.1 KEGG 分析
- 10.2 GO 分析
- 第十一章 Circular plot
- 11.1 基本的 Circular plot
- 附录 下载数据