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

如何解决PCA Biplot绘图中的文本重叠问题

解决PCA双图文本重叠问题

最直接的修复:开启文本排斥功能

你的代码里设置了repel=F,这是文本重叠的核心原因,把它改成repel=T,函数会自动调整所有文本的位置,避免互相遮挡:

fviz_pca_biplot(res.pca,
                labelsize=3,
                addEllipses = T,
                repel=T,  # 这里修改为TRUE
                # Individuals
                geom.ind = "point",
                geom.var = c("point", "text"),
                fill.ind = data$Species,
                pointshape = 21 ,
                pointsize = 2,
                alpha.ind=0.4,
                # Variables
                alpha.var =1, 
                legend.title = list(fill = "Species"))+
  
  guides(color=guide_legend("Species"),fill= F)

其他辅助优化方案

  • 微调标签尺寸:如果开启排斥后仍有少量拥挤,可把labelsize再调小一点,比如labelsize=2.5
  • 单独控制变量文本:如果只想优化变量标签的位置,可借助ggrepel包手动替换文本图层,示例:
library(ggrepel)
fviz_pca_biplot(res.pca,
                labelsize=3,
                addEllipses = T,
                repel=F,
                # Individuals
                geom.ind = "point",
                geom.var = "point",  # 仅保留变量点,关闭默认文本
                fill.ind = data$Species,
                pointshape = 21 ,
                pointsize = 2,
                alpha.ind=0.4,
                # Variables
                alpha.var =1, 
                legend.title = list(fill = "Species"))+
  # 用ggrepel绘制变量文本,自定义排斥规则
  geom_text_repel(data = attr(res.pca, "var")$coord,
                  aes(x = Dim.1, y = Dim.2, label = rownames(attr(res.pca, "var")$coord)),
                  size=3)+
  guides(color=guide_legend("Species"),fill= F)
  • 拆分双图:如果双图本身元素过多,可分开绘制个体得分图和变量载荷图,彻底避免互相干扰:
# 个体得分图
fviz_pca_ind(res.pca,
             fill.ind = data$Species,
             pointshape = 21,
             pointsize = 2,
             alpha.ind=0.4,
             addEllipses = T,
             legend.title = list(fill = "Species"))+
  guides(color=guide_legend("Species"),fill= F)

# 变量载荷图
fviz_pca_var(res.pca,
             geom.var = c("point", "text"),
             repel=T,
             alpha.var=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 01:25:37