使用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
相关产品推荐
相关产品推荐

