R语言用列数据画PCA带椭圆图
之前找了很多信息,见到的都是用行画PCA,用列的大多都是使用fviz_pca_var这个函数,但这个函数椭圆我又死活加不上,再加上画椭圆时的分组信息又没法加在原数据里,纠结了很久。但最后还是被我试出来了。 先放个原数据格式:
library(FactoMineR) library(factoextra) data = read.csv("G:/TPTNW.csv",row.names = "gene_id") #这是分组信息 datagroup = read.csv("G:/TPTNWgroup.csv") #t()用于转换矩阵行列,用起来方便省事 verdata = t(data) res.pca <- PCA(verdata, graph = FALSE) #将同一组的individuals圈在一起 fviz_pca_ind(res.pca, geom.ind = c("point","text"), # 显示点与文字 col.ind = datagroup$group, #以组分颜色,这里直接上面导入的group信息即可 palette = c("#00AFBB", "#E7B800", "#FC4E07"), #颜色 addEllipses = TRUE, #画椭圆 legend.title = "Groups" #分组名 )
结果图: