之前找了很多信息,见到的都是用行画PCA,用列的大多都是使用fviz_pca_var这个函数,但这个函数椭圆我又死活加不上,再加上画椭圆时的分组信息又没法加在原数据里,纠结了很久。但最后还是被我试出来了。
先放个原数据格式:
library("FactoMineR")
library("factoextra")
library("dplyr")
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" #分组名
)
结果图: