數(shù)據(jù)展示的時候,我們經(jīng)常會用到維恩圖來展示各個數(shù)據(jù)集之間的重疊(交叉)關(guān)系。R語言中有很多程序包(package)可以做這個事情,包括limma, gplots, venneuler, 還有今天我們下面要介紹的VennDiagram包。各個工具用起來差別不是很大,可以根據(jù)個人喜好選擇,不過其中l(wèi)imma包只能展示最多三個數(shù)據(jù)集的關(guān)系,后面三個包都可以展示超過三個數(shù)據(jù)集的維恩圖。
1. 安裝并加載包VennDiagram
> install.packages("VennDiagram")
> library(VennDiagram)
2. 畫維恩圖的函數(shù)--venn.diagram()
VennDiagram包中畫維恩圖的函數(shù)是venn.diagram(). 下面我們來看一下venn.diagram()函數(shù)的使用及參數(shù)說明。
> venn.diagram(x, filename, height = 3000, width = 3000, resolution =
500, imagetype = "tiff", units = "px", compression =
"lzw", na = "stop", main = NULL, sub = NULL, main.pos
= c(0.5, 1.05), main.fontface = "plain",
main.fontfamily = "serif", main.col = "black",
main.cex = 1, main.just = c(0.5, 1), sub.pos = c(0.5,
1.05), sub.fontface = "plain", sub.fontfamily =
"serif", sub.col = "black", sub.cex = 1, sub.just =
c(0.5, 1), category.names = names(x), force.unique =
TRUE, print.mode = "raw", sigdigs = 3, direct.area =
FALSE, area.vector = 0, hyper.test = FALSE, total.population = NULL,
lower.tail = TRUE, ...)
部分參數(shù)說明:
x: a list of vectors, e.g: list(A=1:10, B=3:8, C=5:13)
filename: 設(shè)置圖形輸出文件名
resolution: 輸出圖形的清晰度,DPI數(shù)值
imagetype: 輸出圖形的格式,tiff, png, svg 等
alpha: 設(shè)置每個區(qū)塊的透明度
main: 圖形標題
main.fontface: 字體樣式,比如斜體,粗體等
main.fontfamily: 字體,比如Time New Roman等
關(guān)于調(diào)解文字的,不僅可以針對標題調(diào)節(jié),還有參數(shù)分別針對子標題,維恩圖中每個部分(類別)的名字進行字體,大小,和字體樣式的設(shè)置。
更多關(guān)于venn.diagram函數(shù)的參數(shù)說明可以查看其詳細文檔
下面舉個我自己剛剛畫的一個例子:
我有三個向量,分別是wdspWD40, smartWD40, 和pfamWD40. 它們之間可能會有交集,我想用維恩圖來可視化,代碼如下:
venn.diagram(list(WDSP=wdspWD40,Pfam=pfamWD40,SMART=smartWD40),
resolution = 300, imagetype = "tiff", alpha=c(0.5,0.5,0.5),
fill=c("red","yellow","blue"), cat.fontface=4,fontfamily=3,
main="Intersection of WD40 genes identified by different methods",
main.cex = 2, main.fontface = 2, main.fontfamily = 3,
filename = "VennDiagram.tif")
