You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中绘制PC2与PC3的PCA双标图?含FactoMineR及prcomp实现

实现PC2为X轴、PC3为Y轴的PCA双标图

下面提供两种主流实现方式,适配你当前的工作流或其他常用PCA工具:

方法1:基于FactoMineR + factoextra(兼容你的现有代码)

factoextra的绘图函数支持通过axes参数指定要展示的主成分,直接设置axes = c(2, 3)即可将PC2设为X轴、PC3设为Y轴。

变量相关性及贡献度图(仅变量)

# 绘制PC2 vs PC3的变量图,保留贡献度配色
fviz_pca_var(res.pca, col.var = "contrib",
             gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
             axes = c(2, 3))  # 指定X轴为PC2,Y轴为PC3

双标图(变量+样本)

如果需要同时展示样本和变量的分布,使用fviz_pca_biplot并同样指定axes参数:

# PC2 vs PC3的双标图
fviz_pca_biplot(res.pca, col.var = "contrib",
                gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
                col.ind = "gray50",  # 样本点设为灰色
                axes = c(2, 3))

方法2:基于prcomp + factoextra/ggplot2

如果改用prcomp执行PCA,同样可以用factoextra快速绘图,或用ggplot2手动定制:

步骤1:用prcomp执行PCA

# 标准化数据后执行PCA(prcomp默认不中心化,建议手动指定)
res.prcomp <- prcomp(decathlon2.active, scale. = TRUE, center = TRUE)

步骤2:用factoextra绘制双标图

fviz_pca_biplot(res.prcomp, col.var = "contrib",
                gradient.cols = c("#00AFBB", "#E7B800", "#FC4E07"),
                col.ind = "gray50",
                axes = c(2, 3))

步骤3:用ggplot2手动绘制(高度定制化)

如果你需要更灵活的样式控制,可以提取PCA结果数据后用ggplot2绘图:

library(ggplot2)

# 提取变量的PC得分
var_scores <- as.data.frame(res.prcomp$rotation[, c(2, 3)])
var_scores$var <- rownames(var_scores)

# 提取样本的PC得分
ind_scores <- as.data.frame(res.prcomp$x[, c(2, 3)])

# 绘制双标图
ggplot() +
  # 绘制样本点
  geom_point(data = ind_scores, aes(x = PC2, y = PC3), color = "gray50", alpha = 0.7) +
  # 绘制变量箭头
  geom_segment(data = var_scores, aes(x = 0, y = 0, xend = PC2, yend = PC3), 
               arrow = arrow(length = unit(0.2, "cm")), color = "blue") +
  # 添加变量标签
  geom_text(data = var_scores, aes(x = PC2 * 1.1, y = PC3 * 1.1, label = var), color = "blue") +
  theme_minimal() +
  labs(x = "主成分2 (PC2)", y = "主成分3 (PC3)", title = "PCA双标图(PC2 vs PC3)")

内容的提问来源于stack exchange,提问作者sermomon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 23:52:44