全库搜索 Markdown 图册
Paper Analysis · 2 分钟阅读

使用R语言美化PCA图

站内编号 KB-000068
clippings生信教程Bulk转录组PCAR语言factoextraFactoMineRpca3d暂未试用
板块与文章导航

摘要原文证据摘要 文章介绍两种 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。