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

使用fviz_pca_ind绘制PCA图时点大小不一的原因探究

解决fviz_pca_ind绘制PCA图时点大小不一的问题

你看到的点大小差异,是因为fviz_pca_ind默认会根据**个体在主成分上的平方余弦值(cos2)**来调整点的大小——cos2越高,说明该个体的信息被主成分解释得越充分,点就越大。你查看的那段源码只是处理固定大小赋值的分支,而默认逻辑里,当你没有手动指定pointsize参数时,函数会自动把点大小和cos2关联起来。

要让所有点大小一致,只需要在函数里手动指定固定的pointsize值即可,修改后的代码如下:

library(FactoMineR)
library(factoextra)
pca.res <- PCA(iris[, 1:3])
fviz_pca_ind(pca.res, 
             geom.ind='point', 
             col.ind=iris$Species, 
             addEllipses=TRUE, 
             palette='lancet',
             pointsize = 1.5) # 固定所有点的大小

如果想保留基于贡献度的大小显示,但想调整大小范围,可以用scale参数配合自定义范围,比如:

pointsize = scale(pca.res$ind$cos2[,1], center=FALSE, scale=range(1,3))

不过这种场景比较少见,大部分时候直接固定大小就能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 09:15:56