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

如何用geom_encircle在ggbiplot的PCA图中实现颜色一致的圈?

解决ggbiplot中geom_encircle与点颜色映射不一致的问题

问题根源

你当前手动构造fill向量的方式没有和wine.class建立映射关联,不仅容易因分组数量变化出错,还无法和点的颜色映射逻辑统一,导致颜色不匹配。

修正后的代码

library(ggalt)
library(ggbiplot)
data(wine)

# 执行PCA分析
wine.pca <- prcomp(wine, scale. = TRUE)

ggbiplot(wine.pca, obs.scale = 1, var.scale = 1,
         groups = wine.class, ellipse = F, circle = F) +
  theme(legend.direction = 'horizontal', legend.position = 'top') +
  # 统一点的颜色映射
  geom_point(aes(color = wine.class), size = 1) +
  scale_color_manual(name = "Saturday", values = c("red","green","blue")) +
  # 让圈选填充色与分组变量绑定,共享颜色映射
  geom_encircle(aes(group = wine.class, fill = wine.class), 
                alpha = 0.3, show.legend = F, colour = NA) +
  # 同步填充色与点的颜色参数
  scale_fill_manual(values = c("red","green","blue"))

关键改动说明

  • 将geom_encircle的fill参数从手动构造的向量改为wine.class,使其基于分组变量自动映射颜色
  • 添加scale_fill_manual并使用和scale_color_manual完全一致的颜色值,确保点颜色和圈选填充色一一对应
  • 移除手动生成fill向量的冗余代码,避免分组样本数变化时出现匹配错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 05:01:24