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

如何用ggVennDiagram基于自有手术技术数据集绘制3D韦恩图?

使用ggVennDiagram绘制带热图的3D韦恩图

问题原因

你之前的两种操作都不符合ggVennDiagram的输入规则:

  • 直接传入0-1矩阵:函数默认将每一列视为独立元素集合,但你的数据是行代表样本、列代表样本是否属于对应手术集合,格式不匹配
  • 手动构建计数列表:ggVennDiagram不接受键值对式的计数输入,它需要的是每个手术集合对应的元素(如患者行号)组成的列表

正确实现步骤

1. 构建符合要求的输入数据

先将每种手术技术对应的患者行号提取出来,组成集合列表:

# 还原你的数据集
surgery_df <- data.frame(
  ae.folds = c(rep(1,19), rep(1,8), 1,1),
  arytenoid.reduction = c(rep(0,19), rep(1,7), 0,1),
  epiglottopexy = c(rep(0,27), 1,1)
)

# 生成集合列表:每个元素对应一种手术的患者行号
venn_list <- list(
  "ae.folds" = which(surgery_df$ae.folds == 1),
  "arytenoid.reduction" = which(surgery_df$arytenoid.reduction == 1),
  "epiglottopexy" = which(surgery_df$epiglottopexy == 1)
)

2. 绘制3D韦恩图并启用热图效果

调用ggVennDiagram,通过参数设置3D模式和热图展示:

library(ggVennDiagram)

ggVennDiagram(venn_list,
              type = "3d",                # 启用3D韦恩图模式
              show_heatmap = TRUE,        # 开启热图展示计数高低
              heatmap_color = c("#F5EFE7", "#4F709C")  # 自定义热图渐变颜色
) +
  theme(legend.position = "right")  # 调整图例位置

结果说明

  • 热图颜色深浅对应区域的患者计数:比如ae.folds单独区域有19个患者,颜色最深;三种手术交集区域有1个患者,颜色最浅
  • 3D效果让各手术的组合区域更直观,能清晰呈现手术技术的使用变化

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 19:06:08