摘要原文证据摘要 文章介绍两种 PCA 结果可视化:使用
FactoMineR::PCA()和factoextra::fviz_pca_ind()美化二维样本图,以及使用pca3d::pca3d()绘制三维 PCA。示例数据是 R 自带的iris数据集。
页面核验信息#
- 标题: 使用R语言美化PCA图
- 公众号/作者: 医学和生信笔记 / 阿越
- 发布时间: 2021-12-30 21:51
- 原文链接: https://mp.weixin.qq.com/s/LTQIWYW86QCOEu7fctF8xQ
- 浏览器核验结果: 页面包含“美化普通的二维PCA图”和“画一个三维的PCA图”两节;二维部分明确使用
ggplot2、factoextra、FactoMineR,三维部分使用pca3d。
原文方法摘录#
二维 PCA#
原文以 iris 前四列做 PCA,并以 Species 作为分组。核心调用为:
library(ggplot2)
library(factoextra)
library(FactoMineR)
df <- iris[c(1:4)]
iris.pca <- PCA(df, graph = FALSE)
fviz_pca_ind(
iris.pca,
geom.ind = "point",
pointsize = 3,
pointshape = 21,
fill.ind = iris$Species,
addEllipses = TRUE,
legend.title = "Groups",
title = ""
) +
theme_bw()
原文强调 factoextra 返回的图可以继续用 ggplot2::theme() 调整字体、坐标轴、图例位置和背景。迁移到 Bulk RNA-seq 时,iris$Species 应替换为样本信息表中的分组列,输入矩阵应改为“基因 × 样本”。
三维 PCA#
原文使用 pca3d 包的 metabo 数据:
library(pca3d)
data("metabo")
pca <- prcomp(metabo[, -1], scale. = TRUE)
gr <- factor(metabo[, 1])
pca3d(pca, group = gr, show.centroids = TRUE, legend = "topleft")
复用时需要修正的地方#
- 原文二维代码的 PCA 对象命名为
iris.pca,后续示例中出现过res.pca;复用时应统一对象名。 palette = "lacent"看起来是原文示例中的拼写问题,正式分析应使用明确的颜色向量或已确认存在的调色板。- 对
shape = 21一类需要填充色的点,建议先确认当前factoextra版本对fill.ind的支持;不兼容时改用col.ind或提取 PCA scores 后用ggplot2自定义绘图。 - 三维图更适合探索,不应代替二维 PCA 的 QC 记录;正式报告仍应保留 PC1/PC2、解释率和样本分组信息。
与综合方法页的关系#
本页保留原文方法证据;可复用的 Bulk RNA-seq 参数化脚本见远程仓库 04_Bulk转录组/4.2_PCA/01_factoextra_PCA二维美化.R,综合说明见 03 生信教程与工具库/02_wiki/methods/Bulk转录组PCA美化图-二维三维与ggbiplot。