R语言绘制成比例韦恩图

前言

本篇是R包eulerr绘制成比例韦恩图的教程

什么是韦恩图?

韦恩图(Venn Diagram)是一种用于展示集合之间关系的图形工具。它通过重叠的圆形来表示不同集合及其交集。每个圆代表一个集合,圆与圆之间的重叠部分则表示这些集合的交集。

成比例的韦恩图是指韦恩图中各个部分的面积与所代表的集合的大小成比例。

绘图前的数据准备

​demo数据可以在https://www.r2omics.cn/res/demodata/eulerr.txt下载。

第一行为组名,必须要有,会出现在图中。每一列都是一个分组,下面的是分组里具体的内容。

R语言绘制成比例韦恩图

# 代码来源:https://www.r2omics.cn/
# install.packages("eulerr")
library(eulerr)

# 读取并整理  数据文件
venn_dat  <- read.delim("https://www.r2omics.cn/res/demodata/eulerr.txt")# 这里读取了网络上的demo数据,将此处换成你自己电脑里的文件
venn_list <- as.list(venn_dat)                         # 转换成列表
venn_list <- purrr::map(venn_list, na.omit)            # 删除列表中每个向量中的NA
venn_list <- lapply(venn_list, function(x) x[x != ""]) # 删除列表中每个向量中的""空字符串
venn_list <- lapply(venn_list, unique)                 # 移除重复元素

# 绘图
plot(euler(
     venn_list,
     shape = "circle"),                    # 图案的形状,椭圆ellipse 或圆circle
     quantities = list(type = c("percent","counts"),cex=1),          # 显示类型,百分比和数字,数字大小
     labels=list(cex=1),                   # 组名标签的大小
     edges = list(col = "black", lex = 2), # 图形边缘的颜色和大小
     fills = list(fill = c("#f18c8d","#8ec7ff","#bfff7f"),alpha=0.7) # 填充的颜色和透明度
     # legend = list(side = "right")       # 图例的位置
)