【R语言】factoextra生成发表级PCA主成分分析图(三)

2022-09-21 18:40:23 浏览数 (1)

前面我们们给大家简单介绍了

☞【R语言】factoextra生成发表级PCA主成分分析图(一)

☞【R语言】factoextra生成发表级PCA主成分分析图(二)

今天我们来看看如何在主成分分析之后得到的新的空间中同时展示样本和特征。

代码语言:javascript复制
#首先我们需要安装下面这两个R包
install.packages("factoextra")
install.packages("FactoMineR")

#加载这两个R包
library(FactoMineR)
library(factoextra)

#做PCA分析,第五列为物种,非数值属性需要去除
iris.pca <- PCA(iris[,-5], graph = T)

接下来我们就来同时展示样本和特征

代码语言:javascript复制
fviz_pca_biplot(iris.pca,
                label = "var" #只标注变量,不标注样本
                )

根据样本类型来对样本着色

代码语言:javascript复制
fviz_pca_biplot(iris.pca, 
                label = "var",  #只标注变量,不标注样本
                habillage=iris$Species  #根据样本类型着色
)

观察仔细的小伙伴可能发现,在上面这张图里面有三个点比其他点要大一些,其实这三个点是三个组的中心点。那么我们怎么去除各组的中心点呢?其实只需要修改mean.poin这个参数就可以了

代码语言:javascript复制
#去除各组的中心点
fviz_pca_biplot(iris.pca, 
                col.var="red",  #设置特征颜色为红色
                label = "var",  #只标注变量,不标注样本
                mean.point=F,#去除分组的中心点
                habillage=iris$Species #根据样本类型着色
)

中心点不见了

根据特征的贡献度对特征着色

代码语言:javascript复制
#根据特征的贡献度对特征着色
fviz_pca_biplot(iris.pca, 
                label = "var", #只标注变量,不标注样本
                col.var="contrib", #根据特征的贡献度对特征着色
                gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07")
                )

你会发现这个时候变量有不同的颜色了,我们能不能同时让样本也有不同的颜色呢?

尝试同时给样本和变量着色

代码语言:javascript复制
fviz_pca_biplot(iris.pca, 
                label = "var", #只标注变量,不标注样本
                col.var="contrib", #根据特征的贡献先对特征着色
                habillage=iris$Species, #根据样本类型着色
                gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07")
)

天不遂人愿,得到一个错误。

大家是不是很好奇,下面这篇paper中的图是怎么做出来的?

敬请期待,下一期小编为大家揭晓答案。

参考资料:

☞【R语言】factoextra生成发表级PCA主成分分析图(一)

☞【R语言】factoextra生成发表级PCA主成分分析图(二)

0 人点赞