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

如何在R语言中绘制给定结构的Venn图

在R中绘制指定编码的双集合Venn图

步骤1:整理原始编码数据

先将你提供的编码数据转换为R可直接处理的结构,并提取各区域的元素数量:

# 还原你的Venn图编码数据
venn_data <- list(
  list(c(FALSE, TRUE), 1),  # B独有的区域
  list(c(TRUE, TRUE), 1),   # A和B的交集区域
  list(c(TRUE, FALSE), 2)   # A独有的区域
)

# 提取各区域计数
only_A <- venn_data[[3]][[2]]
only_B <- venn_data[[1]][[2]]
intersection <- venn_data[[2]][[2]]

步骤2:使用VennDiagram包绘制标准Venn图

VennDiagram是R中常用的Venn图绘制工具,支持自定义样式:

# 安装包(首次使用时执行)
# install.packages("VennDiagram")

library(VennDiagram)

# 绘制双集合Venn图
draw.pairwise.venn(
  area1 = only_A + intersection,  # 集合A的总元素数
  area2 = only_B + intersection,  # 集合B的总元素数
  cross.area = intersection,      # 交集元素数
  category = c("A", "B"),         # 集合名称标签
  fill = c("#619CFF", "#F8766D"), # 区域填充色
  alpha = 0.4,                    # 填充透明度
  cat.cex = 1.3,                  # 标签文字大小
  main = "A与B的Venn图"            # 图标题
)

步骤3:可选——使用venneuler包直接映射逻辑标记

如果你不想手动计算集合总大小,可以用venneuler包直接传入区域的逻辑标记和计数:

# 安装包(首次使用时执行)
# install.packages("venneuler")

library(venneuler)

# 构造包含逻辑标记和计数的数据框
region_data <- data.frame(
  A = c(FALSE, TRUE, TRUE),
  B = c(TRUE, TRUE, FALSE),
  count = c(1, 1, 2)
)

# 生成并绘制Venn图
venn_plot <- venneuler(region_data)
plot(venn_plot, main = "A与B的Venn图")

内容的提问来源于stack exchange,提问作者Stéphane Laurent

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 15:40:27