R语言主成分分析(PCA)加置信椭圆

star2017 1年前 ⋅ 6561 阅读
使用R自带数据集iris的前4列进行主成分分析,主要使用R的prcomp()基础函数。

使用ggplot2绘制

head(iris)
ord <- prcomp(iris[,1:4])
summary(ord)
dt <- ord$x
df <- data.frame(dt,iris$Species)
head(df)
summ <- summary(ord)
xlab <- paste0("PC1(",round(summ$importance[2,1]*100,2),"%)")
ylab <- paste0("PC2(",round(summ$importance[2,2]*100,2),"%)")
library(ggplot2)
(p1 <- ggplot(df,aes(df$PC1,df$PC2,color=df$iris.Species))+stat_ellipse(aes(fill=df$iris.Species),type="norm",geom="polygon",alpha=0.2,color=NA)+guides(fill=F)+geom_point()+labs(x=xlab,y=ylab,color=""))
R语言主成分分析(PCA)加置信椭圆

使用ggord绘制

R包安装和载入

#install.packages('devtools')
library(devtools)
#devtools::install_github('fawda123/ggord')
library(ggord)

绘图

library(ggord)
#绘制散点图;repel避免标签重叠
(p2 <- ggord(ord,iris$Species,coord_fix=F,labcol='purple',repel=TRUE))
R语言主成分分析(PCA)加置信椭圆
#改变箭头(特征向量)的scaling(箭头大小),arrow length(箭头长度),line color,size(粗细),type:
(p3 <- ggord(ord,iris$Species,coord_fix=F,labcol='purple',repel=TRUE,arrow=0.25,vec_ext=2,veccol='blue',veclsz=0.5,vectyp='solid'))
R语言主成分分析(PCA)加置信椭圆
#隐藏箭头
(p4 <- ggord(ord,grp_in = iris$Species,coord_fix=F,arrow=0,vec_ext=0,txt=NULL))
R语言主成分分析(PCA)加置信椭圆
#自定义点的大小、颜色、透明度
(p5 <- ggord(ord,iris$Species,coord_fix=F,cols=c('purple','orange','blue'),size=2,alpha=0.7,arrow=0,vec_ext=0,txt=NULL))
R语言主成分分析(PCA)加置信椭圆
#取消填充
(p6 <- ggord(ord,iris$Species,coord_fix=F,cols=c('purple','orange','blue'),size=2,alpha=0.7,arrow=0,vec_ext=0,txt=NULL,poly=FALSE))
R语言主成分分析(PCA)加置信椭圆
#自定义椭圆描边样式
(p7 <- ggord(ord,iris$Species,coord_fix=F,cols=c('purple','orange','blue'),size=2,alpha=0.7,arrow=0,vec_ext=0,txt=NULL,poly=FALSE,polylntyp='dashed'))
R语言主成分分析(PCA)加置信椭圆
#描边与分组建立映射
(p8 <- ggord(ord,iris$Species,coord_fix=F,cols=c('purple','orange','blue'),size=2,alpha=0.7,arrow=0,vec_ext=0,txt=NULL,poly=FALSE,polylntyp=iris$Species))
R语言主成分分析(PCA)加置信椭圆
#添加多边形区域
(p9 <- ggord(ord,iris$Species,coord_fix=F,cols=c('purple','orange','blue'),size=2,alpha=0.7,arrow=0,vec_ext=0,txt=NULL,ellipse=FALSE,hull=TRUE))
R语言主成分分析(PCA)加置信椭圆
#隐藏网格线
(p10 <- p9+scale_shape_manual('Groups',values = c(0,1,2))+theme(panel.grid=element_blank()))
R语言主成分分析(PCA)加置信椭圆

本文参照基迪奥系列书籍总结

作者:灰常不错

链接:https://www.jianshu.com/p/256fe1cae3ba

本文来自简书,观点不代表一起大数据-技术文章心得立场,如若转载,请注明出处:https://www.jianshu.com/p/256fe1cae3ba

更多内容请访问:IT源点

相关文章推荐

全部评论: 0

    我有话说: