韋恩圖是用來展示不同組數(shù)據(jù)間交集和差異的一種可視化方法。比如我們有三組數(shù)據(jù),分別是A,B,C。A里的數(shù)據(jù)是1,2,3。B里的數(shù)據(jù)是2,3,4。C里的數(shù)據(jù)是3,4,5,。那么AB有兩個交集,BC有兩個交集,AC有1個交集,ABC之間有1個交集。那么用韋恩圖展示就是下面的效果

R語言里畫韋恩圖的包我目前知道的有五個,分別是
- VennDiagram
- ggvenn
- ggVennDiagram
- yyplot
ggvenn()函數(shù) - ChIPseeker
vennplot()函數(shù)
yyplot畫韋恩圖可以參考 https://guangchuangyu.github.io/cn/2018/04/ggvenn/
這個畫出來的韋恩圖每個圈好像是按實(shí)際數(shù)據(jù)多少的比例來畫的。

而其他幾個韋恩圖畫出的圈的大小都是一樣的。
ChIPseeker 畫韋恩圖可以參考 https://mp.weixin.qq.com/s/MqpfgkMJSFj0pYwcEjV9kQ?
代碼
x1 <- list(A=sample(genes,300),B=sample(genes,525),C=sample(genes,440))
BiocManager::install("ChIPseeker")
library(ChIPseeker)
help(package="ChIPseeker")
install.packages("Vennerable", repos="http://R-Forge.R-project.org")
ChIPseeker::vennplot(x1,by='Vennerable')

今天先介紹一下使用ggvenn這個包來畫韋恩圖的簡單小例子。
ggvenn畫韋恩圖接受2—4組數(shù)據(jù),輸入數(shù)據(jù)可以整理成數(shù)據(jù)框或者列表格式。我個人感覺列表格式還是相對比較好用的。
比如先模擬生成數(shù)據(jù)
genes <- paste("gene",1:1000,sep="")
set.seed(20190708)
x <- list(A=sample(genes,300),B=sample(genes,525),C=sample(genes,440),D=sample(genes,350))
這個模擬生成數(shù)據(jù)的代碼來自ggVennDiagram這個包的github主頁 https://github.com/gaospecial/ggVennDiagram
畫圖
library(ggvenn)
ggvenn(x,c("A","B","C","D"))

還有很多參數(shù)可以設(shè)置來修改畫圖的細(xì)節(jié),比如填充顏色,顏色的透明度,線條的顏色,線條的透明度等等。具體參數(shù)可以查看幫助文檔。

歡迎大家關(guān)注我的公眾號
小明的數(shù)據(jù)分析筆記本