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

如何基于分组DataFrame的单列创建韦恩图?

基于分组DataFrame绘制韦恩图的最简实现方法

示例数据

先定义你的示例DataFrame:

df <- data.frame(
  groups = c(rep(1, 10), rep(2, 8)),
  items = c(LETTERS[1:10], LETTERS[7:14])
)

最简实现方案(R语言)

使用ggvenn包是最简洁的方式——它基于ggplot2,语法直观,无需手动计算交集/独有元素数量:

  1. 安装并加载包
# 首次运行执行安装
install.packages("ggvenn")
library(ggvenn)
  1. 转换数据格式
    将DataFrame按groups列拆分,得到每个分组对应的待对比项列表:
item_list <- split(df$items, df$groups)
  1. 绘制韦恩图
    直接传入列表即可生成带百分比标注的韦恩图:
ggvenn(item_list, show_percentage = TRUE)

备选方案(基础包实现)

如果不想引入额外依赖,可使用VennDiagram包,需手动计算各区域元素数量:

install.packages("VennDiagram")
library(VennDiagram)

item_list <- split(df$items, df$groups)
draw.pairwise.venn(
  area1 = length(item_list[[1]]),
  area2 = length(item_list[[2]]),
  cross.area = length(intersect(item_list[[1]], item_list[[2]])),
  category = names(item_list),
  fill = c("#619CFF", "#F8766D"),
  alpha = 0.6
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 03:45:48