【R语言】factoextra生成发表级PCA主成分分析图(一)
2021-12-05 本文已影响0人
生信交流平台
前面给大家介绍过主成分分析
今天我们来给大家介绍另一个做PCA分析并绘图的R包factoextra,很多SCI文章中都用到了这个R包。换句话说这个R包画出来的PCA图是发表级的。
#首先我们需要安装下面这两个R包
install.packages("factoextra")
install.packages("FactoMineR")
#加载这两个R包
library(FactoMineR)
library(factoextra)
接下来我们查看一下要使用的数据,我们会用R里面自带的一套数据集iris。Iris也称鸢尾花卉数据集,包含150个数据样本,分为3类(Setosa,Versicolour,Virginica),每类50个数据,每个数据包含4个属性,花萼长度,花萼宽度,花瓣长度,花瓣宽度(Sepal.Length,Sepal.Width,Petal.Length,Petal.Width)4个属性。
head(iris)
进行主成分分析
#做PCA分析,第五列为物种,非数值属性需要去除
iris.pca <- PCA(iris[,-5], graph = T)
#绘制主成分碎石图,查看每一个主成分能在多大程度上代表原来的特征
#第一个主成分就可以保留原来特征73%的信息
fviz_screeplot(iris.pca, addlabels = TRUE, ylim = c(0, 80))
接下来我们可以查看样本的主成分分析结果
#查看样本的主成分分析结果
var <- get_pca_var(iris.pca)
#原始特征在新的坐标空间(PC1,PC2...)中的坐标位置
var$coord
#查看每一个特征对每一个主成分的贡献程度
var$contrib
接下来查看样本在新空间中的分布
fviz_pca_ind(iris.pca,
mean.point=F,#去除分组的中心点,否则每个群中间会有一个比较大的点
label = "none", #隐藏每一个样本的标签
habillage = iris$Species, #根据样本类型来着色
palette = c("#00AFBB", "#E7B800", "#FC4E07")#三个组设置三种颜色
)
为每一个样本类群添加椭圆边界线
#为每一个样本类群添加椭圆边界线
fviz_pca_ind(iris.pca,
mean.point=F,#去除分组的中心点
label = "none", #隐藏每一个样本的标签
habillage = iris$Species, #根据样本类型来着色
palette = c("#00AFBB", "#E7B800", "#FC4E07"),#三个组设置三种颜色
addEllipses = TRUE #添加边界线,默认为椭圆
)
为每一个样本类群添加多边形边界线
#为每一个样本类群添加多边形边界线
fviz_pca_ind(iris.pca,
mean.point=F,#去除分组的中心点
label = "none", #隐藏每一个样本的标签
habillage = iris$Species, #根据样本类型来着色
palette = c("#00AFBB", "#E7B800", "#FC4E07"),#三个组设置三种颜色
addEllipses = TRUE, #添加边界线
ellipse.type = "convex" #设置边界线为多边形
)
今天的分享就先到这里,后面我们会继续为大家介绍如何使用factoextra包来展示变量,以及如何在一张图上同时展示样本和变量。