R语言画Venn图

一、画Venn diagram

1、依赖包

library(venn)

2、安装venn包

(1)方式一:直接使用install.packages

install.packages(venn)

(2)方式二:在Index of /src/contrib/Archive下载离线安装包,然后通过Rstudio->Tools->Install Packages->Browse选中本地离线安装包

 3、画venn图

library(venn)

# 随机初始化数据集
rand_1 <- sample(1:1000, 400, replace = FALSE);
rand_2 <- sample(1:1000, 600, replace = FALSE);
rand_3 <- sample(1:1000, 350, replace = FALSE);
rand_4 <- sample(1:1000, 550, replace = FALSE);
rand_5 <- sample(1:1000, 375, replace = FALSE);
rand_6 <- sample(1:1000, 200, replace = FALSE);

dataForVennDiagram <- list(
  rand_1,
  rand_2,
  rand_3,
  rand_4,
  rand_5,
  rand_6
  )

# 画venn diagram
venn(
  dataForVennDiagram, 
  snames = c("r-1", "r-2", "r-3", "r-4", "r-5", "r-6"),  # 重命令
  zcolor = "style",      # add color
  opacity = 0.25, 
  ellipse = F
  )

4、Venn效果图

注意:画出这种效果一般要求集合至少6个,如果集合小于5个,美观度没有这个好

5、使用VennDiagram包画Venn图(适用于3-4个集合)

(1)安装VennDiagram

# 安装 VennDiagram 包(如果尚未安装)
install.packages("VennDiagram")

(2)画Venn图

# 加载 VennDiagram 包
library(VennDiagram)

# 随机初始化数据集
set.seed(123)  # 为了结果可重复
rand_1 <- sample(1:1000, 400, replace = FALSE)
rand_2 <- sample(1:1000, 600, replace = FALSE)
rand_3 <- sample(1:1000, 350, replace = FALSE)

dataForVennDiagram <- list(
  "Set1" = rand_1,
  "Set2" = rand_2,
  "Set3" = rand_3
)


# 计算交集大小
library(eulerr)
fit <- euler(dataForVennDiagram)

# 绘制Venn图
venn.plot <- draw.triple.venn(
  area1 = length(dataForVennDiagram[[1]]),
  area2 = length(dataForVennDiagram[[2]]),
  area3 = length(dataForVennDiagram[[3]]),
  n12 = length(intersect(dataForVennDiagram[[1]], dataForVennDiagram[[2]])),
  n23 = length(intersect(dataForVennDiagram[[2]], dataForVennDiagram[[3]])),
  n13 = length(intersect(dataForVennDiagram[[1]], dataForVennDiagram[[3]])),
  n123 = length(Reduce(intersect, dataForVennDiagram)),
  category = c("Set1", "Set2", "Set3"),
  fill = c("blue", "yellow", "green"),
  lty = "blank",
  cex = 2,            # 数字大小
  cat.cex = 2,        # 分类标签大小
  cat.col = c("blue", "yellow", "green"),  # 分类标签颜色
  label.col = "red",  # 数字颜色
  fontface = "bold"   # 数字字体加粗
)

# 在R的绘图窗口中显示Venn图
grid.draw(venn.plot)


# 保存Venn图到PNG文件
png(filename = "venn_diagram.png", width = 800, height = 800)
grid.draw(venn.plot)
dev.off()

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值