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:2020
B = 1:1800
c=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)