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

R语言绘制3D PCA图:垂直线的添加方法与含义咨询

关于3D PCA图垂直线的实现与含义解答

一、用rgl添加垂直线的方法

你可以直接用rgl包的segments3d()函数绘制垂直线,核心思路是为每个样本点生成到PC1轴(即y=0、z=0的坐标轴)的线段。基于你的示例代码,修改后的完整代码如下:

library(rgl)
pc <- prcomp(~ . - Species, data = iris, scale = TRUE)
scores = as.data.frame(pc$x)

# 绘制3D PCA散点图
plot3d(scores[,1:3], main="3D PCA Plot")

# 构造垂直线的起点(样本点)和终点(PC1轴上的投影点)
start_points <- as.matrix(scores[,1:3])
end_points <- cbind(scores$PC1, rep(0, nrow(scores)), rep(0, nrow(scores)))

# 批量绘制垂直线,设置灰色细线条提升可读性
segments3d(rbind(start_points, end_points), col = "gray", lwd = 1)

segments3d()会按输入矩阵的顺序,将每两个连续点连成一条线段,这里通过绑定所有起点和终点,批量完成所有垂直线的绘制。

二、垂直线的含义

  • 核心作用:定位PC1投影:这类垂直线最直接的用途是帮你快速找到每个样本点在PC1轴上的投影位置,尤其是在旋转3D视角时,能清晰对应样本点和它的PC1得分值,避免视觉混淆。
  • 辅助意义:展示多维偏离程度:垂直线的长度对应样本点到PC1轴的距离,线条越长,说明该样本在PC2、PC3维度上的得分绝对值越大,意味着它在除PC1之外的其他主成分上的差异更显著。

内容的提问来源于stack exchange,提问作者Charité Learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 20:03:13