使用prcomp后能否仅对前2个主成分绘制双标图?
仅绘制前2个主成分的双标图解决方案
你直接索引esteempc[1:2]无效是因为prcomp返回的是包含多个元素的列表(比如主成分得分x、载荷矩阵rotation等),不能直接对列表做这种索引。这里有两种简单的解决方法:
方法1:直接用biplot的choices参数
基础R的biplot函数自带参数可指定要展示的主成分对,设置choices = c(1,2)就能只画前两个主成分的双标图:
biplot(esteempc, choices = c(1, 2))
这个参数默认值就是c(1,2),如果之前的代码没指定它导致图表杂乱,加上该参数就能得到简洁的前两主成分双标图。
方法2:手动提取前两个主成分的得分和载荷
如果你需要手动处理数据再绘图,可按以下步骤操作:
- 提取样本在第1、2主成分上的得分:
pc_scores <- esteempc$x[, 1:2]
- 提取变量在第1、2主成分上的载荷(需转置,因为
biplot要求载荷的行对应主成分):
pc_loadings <- t(esteempc$rotation[, 1:2])
- 用提取后的数据绘制双标图:
biplot(pc_scores, pc_loadings)
内容的提问来源于stack exchange,提问作者Luis Loza
相关产品推荐
相关产品推荐

