R語言教程|如何繪製韋恩圖?
實用科研工具推薦 、詳實生信軟體教程分享、前沿創新組學文章解讀、獨家生信影片教程釋出,歡迎關注微信公眾號:
基迪奧生物 (
gene-denovo
)
| 本文作者:莫北
之前在微信文章中的《如何繪製漂亮的“花瓣”韋恩圖?》和《介紹一種簡單的韋恩圖繪製方法》已經為大家介紹如何用OmicShare tools和Origin繪製韋恩圖,今天再為大家介紹下如何用R語言的VennDiagram包繪製韋恩圖。
#安裝載入VennDiagram包;
install。packages(“VennDiagram”)
#載入VennDiagram包;
library
(VennDiagram)
#讀入資料;
data
= read。table(“venndata。txt”,header =TRUE,row=1,sep=“\t”)
head(data)
#獲取行名;
otus =
rownames(data)
head
(otus)
#獲取列名;
sets =
colnames(data)
sets
#指定比較組,以"_"分隔;
option =“MO-MU-SJ-SA”
option
#獲取指定的新分組名稱;
newgroup =
unlist
(strsplit(option,“-”))
newgroup
#生成空列表;
x =
list()
#將每個分組絕對丰度值大於0的otu id列表逐一存到列表x中,[]選取資料框、矩陣、向量中的元素,[[]]選取列表中的元素;
for(i in newgroup){
x[[i]]=otus[as。numeric(data[,i])>0]
}
#檢視列表x的結構;
str
(x)
#載入個人收藏的wesanderson包顏色列表;
Chevalier1<-
c(
“#355243”,“#fbca50”,“#c9d5d4”,“#baa28a”)
FantasticFox1<-
c(
“#d37a20”,“#dbcb09”,“#3a9cbc”,“#dd7208”,“#a30019”)
Moonrise3<-
c(
“#75cbdc”,“#f0a4af”,“#8a863a”,“#c2b479”,“#f8d068”
)
Cavalcanti1<-
c(
“#ceab0d”,“#083215”,“#919562”,“#6f997a”,“#831e11”
)
Darjeeling2<-
c(
“#e6c09e”,“#0d5888”,“#cb8b3e”,“#9cd6d6”,“#000000”
)
Darjeeling1<-
c(
“#fb0007”,“#139177”,“#ed9e08”,“#f56f08”,“#4caecc”
)
Royal2<-
c(
“#e4c9b2”,“#f1c2a5”,“#f49d98”,“#fcd68f”,“#629076”
)
IsleofDogs2<-
c(
“#e4c9b2”,“#998273”,“#a6723d”,“#2b2523”,“#151213”
)
#設定顏色列表,因為最多隻能畫五個分組的韋恩圖,這裡最多設定5種顏色;
color_list = Darjeeling1
#依照指定的新分組數選取顏色列;
fill_colors = color_list[1:
length
(x)]
fill_colors
#獲取系統日期;
date
<-Sys。Date()
date
#生成包含日期的檔名,paste()函式用於字串粘合,strsplit()的逆操作;
filename =
paste
(option,“-”,
date
,“。venn。tiff”,sep=“”)
filename
#繪製韋恩圖,並匯出到工作目錄;
venn。diagram(x,
col
=“white”,fill=fill_colors,lwd=。5,filename=filename,cex=。5,cat。cex=。5,width=1200,height=1200)
最終結果如下:
以上的內容是以繪製4組資料的韋恩圖為例,在指定比較組的那一步,可根據自己的資料自由指定分組(<6組)。例如,當option = “MU-SJ-SA”時,即可得到這3列資料(分組)的韋恩圖,如下:
你甚至還可以嘗試其他配色方案,如下圖,得到令自己滿意的配色。