R语言轻松做交集,绘制Venn图

韦恩图( venn diagram),也叫温氏图、维恩图、范氏图,用于显示元素集合重叠区域的图表。韦恩图是关系型图表,通过图形与图形之间的层叠关系,来表示集合与集合之间的相交关系。每个集合通常以一个圆圈表示。每个集合都是一组具有共同之处的物件或数据。当多个圆圈(集)相互重叠时,称为交集( intersection),里面的数据同时具有重叠集中的所有属性。一个完整的韦恩图包含以下构成元素:①若干个圆表示集合;②若干个圆的层叠部分表示公有集合;③内部文本标签。一般来说, 超过 5 个集合的场景,不适合使用韦恩图。

R 中 VennDiagram 包的 venn.Diagram()函数、 gplots 包的 venn()函数、 limma 包的 vennDiagram()函数、 venneuler 包的 venneuler()函数都可以绘制韦恩图,但是以 VennDiagram 包的 venn.Diagram()函数绘制的韦恩图效果最佳

加载包构建数据

library(VennDiagram)library(RColorBrewer)A = 1571:2020B = 1:1800c=500:1100

做A与B的交集

venn.diagram(list(A=A , B=B ), filename = "Venn.tiff")

加上颜色

venn.diagram(list(A=A , B=B ), filename = "Venn.tiff",fill = c("red","blue"))

三组之间的交集

venn.diagram(list(A=A , B=B,c=c ), filename = "Venn.tiff",fill = c("red","blue","green"))

美化一下

venn.diagram(list(A=A , B=B,c=c ),fill = c(brewer.pal(7,"Set1")[1:3]), alpha = c(0.5, 0.5,0.5), cex = 2, cat.cex=3,cat.fontface = 4,lty =2, fontfamily =3, resolution =300, filename = "Venn.tiff")

如何看交集的结果呢?比如我们看A和B的交集结果,只需一行代码

A[which(A %in% B)]

还在等什么,动动手指尝试一下吧

(0)

相关推荐