R中为不同列存储的处理组PCA图添加分组置信椭圆
实现步骤
你不需要在原始数据集中新增分组列,prcomp 处理行是特征(蛋白质)、列是样本的输入矩阵时,返回结果中样本PC坐标的顺序和输入矩阵的列顺序完全对应,只要手动构造和样本顺序匹配的分组标签即可完成分组映射。
1. 构造分组标签向量
根据你“5组处理、每组3个重复、共15列”的数据集结构,按列的实际分组顺序生成分组因子即可。示例代码如下(请把组名替换成你实际的处理组名称):
# 若列顺序为「组1的3个重复→组2的3个重复→…→组5的3个重复」直接运行 # 若列顺序不是连续按组排列,手动调整向量内标签顺序,保证第n位对应输入矩阵第n列的分组 group <- factor(rep(c("Control", "Treatment1", "Treatment2", "Treatment3", "Treatment4"), each = 3))
可以先运行 length(group) 确认输出长度为15,和样本数一致。
2. 绘制带置信椭圆的分组PCA图
factoextra 包的 fviz_pca_ind 函数原生支持分组着色和置信椭圆绘制,直接把分组标签传入 habillage 参数,同时开启椭圆绘制参数即可,椭圆颜色默认和对应分组的点颜色保持一致:
fviz_pca_ind(PlantPCA, geom.ind = "point", pointshape = 21, pointsize = 2, habillage = group, # 指定分组映射 addEllipses = TRUE, # 开启分组置信椭圆 ellipse.level = 0.95 # 椭圆默认对应95%置信区间,可按需调整数值 ) + ggtitle("PCA plot of proteomics LFQ data") + theme(plot.title = element_text(hjust = 0.5))
可选自定义配置
- 若需要手动指定分组配色,新增颜色标度图层即可:
# 自定义5个分组的配色,替换为你需要的色值 group_colors <- c("#1F77B4", "#FF7F0E", "#2CA02C", "#D62728", "#9467BD") # 在原有绘图代码后叠加配色图层 fviz_pca_ind(...) + # 替换为上述带椭圆的绘图代码 scale_color_manual(values = group_colors) + scale_fill_manual(values = group_colors) + ggtitle(...) + theme(...)
- 若不需要椭圆填充色,仅保留椭圆边框,在
fviz_pca_ind内新增参数ellipse.alpha = 0。 - 若需要显示样本名称标注,将
geom.ind = "point"修改为geom.ind = c("point", "text")即可。
内容的提问来源于stack exchange,提问作者Erica Svendahl
相关产品推荐
相关产品推荐

