用VennDiagram三分钟搞定韦恩图
点击蓝字 关注我们
什么是韦恩图,作用是怎样的?
作为重叠圆圈(通常为 2 或 3 个)的框架,维恩图旨在显示不同数据集之间的关系。这些插图早在 1800 年代后期就由数学家约翰·维恩 (John Venn) 普及,至今仍在广泛使用,但已扩展到涵盖各种背景。维恩图可以让您了解两组或更多组事物有哪些共同点,哪些元素对这些组中的一个或多个组来说是独一无二的,以及这些组都没有表现出哪些特征。
、
安装R包
#安装加载VennDiagram包;install.packages("VennDiagram")#加载VennDiagram包;library(VennDiagram)
数据载入
#读入数据,这里的数据大海哥已经放到附件中了,方便你们测试用data= read.table("venn.txt",row.names = 1,header =T,sep="t")head(data)colnames(data) <- paste0("Set",1:6)#粗略的绘制venn.diagram(x = list(data$Set1, data$Set2),category.names = c("Set 1" , "Set 2 "),filename = 'venn.png',output=TRUE)

#更加精细的绘制venn.diagram(x=list(data$Set1, data$Set2),scaled = F, # 根据比例显示大小alpha= 0.5, #透明度lwd=1,lty=1,col=c('#FFAADD','#CCFCCC'), #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条label.col ='black' , # 数字颜色abel.col=c('#FFFFCC','#CCFFFF',......)根据不同颜色显示数值颜色cex = 2, # 数字大小fontface = "bold", # 字体粗细;加粗boldfill=c('#FFAADD','#CCFCCC'), # 填充色category.names = c("Set1", "Set2") , #标签名cat.dist = 0.02, # 标签距离圆圈的远近cat.pos = -180, # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)cat.cex = 2, #标签字体大小cat.fontface = "bold", # 标签字体加粗cat.col='black' ,cat.default.pos = "outer", # 标签位置, outer内;text 外output=TRUE,filename='./两组.png',# 文件保存imagetype="png", # 类型(tiff png svgresolution = 400, # 分辨率compression = "lzw"# 压缩算法)

这样我们对于初步的韦恩图绘制有了进一步的了解,那下面来进行3元Venn图的绘制叭~
#三元#venn.diagram(x=list(data$Set1,data$Set2,data$Set3),scaled = F, # 根据比例显示大小alpha= 0.5, #透明度lwd=1,lty=1,col=c('#FFFFCC','#CCFFFF',"#FFCCCC"),label.col ='black' , # 数字颜色cex = 2, # 数字大小fontface = "bold", # 字体粗细;加粗boldfill=c('#FFFFCC','#CCFFFF',"#FFCCCC"), # 填充色category.names = c("Set1", "Set2","Set3") , #标签名cat.dist = 0.02, # 标签距离圆圈的远近cat.pos = c(-120, -240, -180), # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)cat.cex = 2, #标签字体大小cat.fontface = "bold", # 标签字体加粗cat.col='black' ,cat.default.pos = "outer", # 标签位置, outer内;text 外output=T,filename='./三组.png',# 文件保存imagetype="png", # 类型(tiff png svg)resolution = 400, # 分辨率)#五元#在作图中我们可以看到我们需要选择很多的颜色来修饰我们的图片,如果你对于颜色选择有困难可以尝试install.packages("RColorBrewer")library(RColorBrewer)col <- RColorBrewer::brewer.pal(5,"Accent")#这里选择了Accent画板的5中颜色,你也可以根据自己的喜好进行选择。venn.diagram(x=list(data$Set1,data$Set2,data$Set3,data$Set4,data$Set5),scaled = F, # 根据比例显示大小alpha= 0.5, #透明度lwd=1,lty=1,col= col, #圆圈线条粗细、形状、颜色;1 实线, 2 虚线, blank无线条label.col ='black' ,cex = 2, # 数字大小fontface = "bold", # 字体粗细;加粗boldfill=col, # 填充色 配色https://www.58pic.com/category.names = c("Set1", "Set2","Set3","Set4","Set5") , #标签名cat.dist = c(0.2, 0.2, 0.2, 0.2, 0.2), # 标签距离圆圈的远近cat.pos = c(0, -10, 240, 120, 20), # 标签相对于圆圈的角度cat.pos = c(-10, 10, 135)cat.cex = 2, #标签字体大小cat.fontface = "bold", # 标签字体加粗cat.col=col,cat.default.pos = "outer", # 标签位置, outer内;text 外output=TRUE,filename='./五组.png',# 文件保存imagetype="png", # 类型(tiff png svgresolution = 400, # 分辨率compression = "lzw"# 压缩算法)

点击“阅读原文”进入网址