查看原文
其他

使用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
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。



欢迎大家关注我的微信公众号:医学和生信笔记

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存