韋恩圖是用來展示不同組數據間交集和差異的一種可視化方法。比如我們有三組數據,分別是A,B,C。A裏的數據是1,2,3。B裏的數據是2,3,4。C裏的數據是3,4,5,。那麼AB有兩個交集,BC有兩個交集,AC有1個交集,ABC之間有1個交集。那麼用韋恩圖展示就是下面的效果
R語言裏畫韋恩圖的包我目前知道的有五個,分別是
- VennDiagram
- ggvenn
- ggVennDiagram
- yyplot
ggvenn()
函數 - ChIPseeker
vennplot()
函數
yyplot畫韋恩圖可以參考 https://guangchuangyu.github.io/cn/2018/04/ggvenn/
這個畫出來的韋恩圖每個圈好像是按實際數據多少的比例來畫的。
而其他幾個韋恩圖畫出的圈的大小都是一樣的。
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組數據,輸入數據可以整理成數據框或者列表格式。我個人感覺列表格式還是相對比較好用的。
比如先模擬生成數據
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))
這個模擬生成數據的代碼來自ggVennDiagram
這個包的github主頁 https://github.com/gaospecial/ggVennDiagram
畫圖
library(ggvenn)
ggvenn(x,c("A","B","C","D"))
還有很多參數可以設置來修改畫圖的細節,比如填充顏色,顏色的透明度,線條的顏色,線條的透明度等等。具體參數可以查看幫助文檔。
歡迎大家關注我的公衆號
小明的數據分析筆記本