前两天Immugent在看文献时有被一个图吸引到(如下),认真读了一下内容和图例发现展示的内容很简单:就是PCA对单细胞数据进行降维。
于是,小编翻了一下之前自己做的PCA图(如下),果然没有对比就没有伤害。
后来一想,那是一年前自己刚学生信时做的,现在学习一年多了肯定可以做出和差不多的图了。然后就开始找相关资料,现在将代码分享给大家,希望小伙伴都能做出类似这样美美的PCA图。
之前做的图着实拿不出手,首先来搞一个进化版的PCA图。
rm(list=ls())
library("magrittr")
head(iris, 3)
library("factoextra")
my_data <- iris[, -5] # 删除分组信息
res.pca <- prcomp(my_data, scale = TRUE)
fviz_pca_biplot(res.pca, col.ind = iris$Species,
palette = "jco", geom = "point")
嗯。。。好看多了,但远远不够。
文章中的那个图是用的三维坐标系,这样就会有一种立体的感觉,那么我们也来尝试一下吧。
library(scatterplot3d)
scatterplot3d(
iris[,1:3], pch = 19, color = "steelblue",
grid = TRUE, box = FALSE,
mar = c(3, 3, 0.5, 3)
)
原来这样的图也是可以通过一个R包来实现的,在实际应用中只需要把PCA值赋值给三个坐标系,然后再进行作图就有文章中的那种感觉啦。。