其他
“使用R语言画更好看的PCA图,主要介绍2种可视化主成分分析结果的方法。
美化普通的二维PCA图
本次示例使用R语言自带的iris
数据集。
加载包和数据
library(ggplot2)
library(factoextra)
library(FactoMineR)
取数据的前4列进行主成分分析和画图:
df <- iris[c(1:4)] # 使用数据的前四列
iris.pca<- PCA(df, graph = FALSE) # 主成分分析
fviz_pca_ind(res.pca,
geom.ind = "point", # 只显示点
pointsize =3, # 点的大小
pointshape = 21, # 点的形状
fill.ind = iris$Species, # 分组颜色
palette = "lacent", # c("#00AFBB", "#E7B800", "#FC4E07")
addEllipses = TRUE, # 增加置信椭圆
legend.title = "Groups", # 图例标题
title="") +
theme_bw() + # 和ggplot2对接进行美化
theme(text=element_text(size=14,face="plain",color="black"),
axis.title=element_text(size=16,face="plain",color="black"),
axis.text = element_text(size=14,face="plain",color="black"),
legend.title = element_text(size=16,face="plain",color="black"),
legend.text = element_text(size=14,face="plain",color="black"),
legend.background = element_blank(),
legend.position=c(0.9,0.1)
)
画出图如下:
pca
这个包的厉害之处就在于可以使用ggplot2
进行修改,大家可以根据自己的喜好进行修改。
画一个三维的PCA图
这幅图是从一篇文献[1]中学习到的。使用方法非常简单,就是使用pca3d
包里面的pca3d()
函数即可:
library(pca3d) # 加载R包
data("metabo") # 加载数据
pca <- prcomp(metabo[,-1],scale. = TRUE) # 使用R自带的主成分分析函数
gr <- factor(metabo[,1])
pca3d(pca, group = gr, show.centroids = T, legend = 'topleft') # 画图
出图如下:
参考资料
[1]doi: 10.1186/s12943-020-01170-0。
欢迎大家关注我的微信公众号:医学和生信笔记