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

如何在PCA图中为每组3个生物学重复数据绘制分组椭圆?

解决PCA图按组绘制椭圆的问题

你当前脚本只生成单个椭圆,核心原因是stat_ellipse没有指定分组规则,默认基于全部数据计算椭圆。要按Treatment分组画椭圆,只需给stat_ellipse添加分组映射即可,以下是修改后的可行脚本:

data <- read.csv("test.csv")
pca <- ggplot(data=data, aes(x = PCA.1, y = PCA.2)) +
  geom_point(aes(shape=Treatment, color=sampleID), size=5, stroke = 1.5) +
  scale_shape_manual(values=c(1, 2, 18, 20))+
  scale_color_manual(values=c("#32CD32", "#008000", "#FF00FF", "#1E90FF", "#0000FF", "#FFD700", "#FF8C00", "#CD6600"))+
  theme_bw()+
  theme(legend.key.size = unit(1.2, "cm"), legend.text = element_text(size = 25), text = element_text(size = 30))+
  # 关键修改:指定按Treatment分组绘制椭圆,同时让椭圆颜色与组对应
  stat_ellipse(aes(group=Treatment, color=Treatment), linetype="dashed", size=1.2)
pca

关键修改说明:

  • group=Treatment:告诉ggplot按照Treatment列的分组分别计算椭圆,每个组生成一个独立椭圆
  • color=Treatment:让椭圆颜色与对应组的点形状匹配,提升图的可读性
  • 额外添加linetype="dashed"和size=1.2:用虚线样式和加粗线条区分椭圆与散点,避免视觉混淆

注意事项:

确保你的test.csv中,Treatment列是正确的分组变量,每个Treatment对应3个生物学重复(即每个Treatment值在数据中出现3次)。如果仍有报错,检查数据是否存在缺失值,或者尝试给stat_ellipse添加type="norm"参数(针对正态分布假设,3个样本也适用):

stat_ellipse(aes(group=Treatment, color=Treatment), linetype="dashed", size=1.2, type="norm")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 14:35:52