ggplot2画点和分组椭圆展示主成分分析(PCA)结果的简单小例子

2021-03-14 19:57:06 浏览数 (1)

昨天的推文介绍了 画点和连线展示主成分分析结果的一个小例子,ggplot2画点和连线展示主成分分析的结果简单小例子 今天的推文介绍一下另外一种选择就是 画点和分组椭圆,就是实现下面这个图的过程

image.png

这个图来自链接 http://www.sthda.com/english/articles/31-principal-component-methods-in-r-practical-guide/112-pca-principal-component-analysis-essentials/

这个链接介绍的很详细了,大家可以自己去看一下

  • 作主成分分析用到的是FactoMineR包中的PCA()函数
  • 作图用到的是factoextra包中的fviz_pca_ind()函数

这两个包如果是第一次使用需要先安装,运行如下命令

代码语言:javascript复制
install.packages("FactoMineR")
install.packages("factoextra")

安装好以后运行如下命令加载

代码语言:javascript复制
library(FactoMineR)
library(factoextra)

示例数据直接用R语言的内置鸢尾花数据集 iris

第一步是主成分分析
代码语言:javascript复制
iris.pca <- PCA(iris[,-5], graph = FALSE)

这样主成分分析的结果就直接存储到了iris.pca里面了

画图展示结果

最基本的

代码语言:javascript复制
fviz_pca_ind(iris.pca)

image.png

接下来通过增加参数来美化
  • 仅仅展示点,去掉文字
代码语言:javascript复制
fviz_pca_ind(iris.pca,
             geom.ind = "point")
  • 按照提前设置的分组填充颜色
代码语言:javascript复制
fviz_pca_ind(iris.pca,
             geom.ind = "point",
             col.ind = iris$Species)
  • 更改默认的配色
代码语言:javascript复制
fviz_pca_ind(iris.pca,
             geom.ind = "point",
             col.ind = iris$Species,
             palette = c("#00AFBB", "#E7B800", "#FC4E07"))
  • 添加分组椭圆
代码语言:javascript复制
fviz_pca_ind(iris.pca,
             geom.ind = "point",
             col.ind = iris$Species,
             palette = c("#00AFBB", "#E7B800", "#FC4E07"),
             addEllipses = TRUE)
  • 更改图例的标题
代码语言:javascript复制
fviz_pca_ind(iris.pca,
             geom.ind = "point",
             col.ind = iris$Species,
             palette = c("#00AFBB", "#E7B800", "#FC4E07"),
             addEllipses = TRUE,
             legend.title="Group")

image.png

欢迎大家关注我的公众号

小明的数据分析笔记本

小明的数据分析笔记本 公众号 主要分享:1、R语言和python做数据分析和数据可视化的简单小例子;2、园艺植物相关转录组学、基因组学、群体遗传学文献阅读笔记;3、生物信息学入门学习资料及自己的学习笔记!

最近在B站看大一个日本童谣比赛银奖的小女孩,非常有意思,分享给大家

0 人点赞