基于R語言繪制韋恩圖和多集合的UpSetPlot

繪制多維韋恩圖和UpSetPlot圖

韋恩圖簡介

韋恩圖(Venn plot),又稱文氏圖,是英國的哲學家和數(shù)學家約翰·維恩(John Venn)在1881年發(fā)明的,主要是用于展示在不同的事物群組(集合)之間的數(shù)學或邏輯聯(lián)系,尤其適合用來表示集合(或)類之間的“大致關系”,它也常常被用來幫助推導(或理解推導過程)關于集合運算(或類運算)的一些規(guī)律。在我們常用的領域,簡單來說就是多個集合之間取交集。


制作venn圖的方法

繪制韋恩圖有很多方式,R,Python,Perl等,這里主要是用R來展示;在R語言中,繪制venn圖有很多包可以實現(xiàn):Venn, Vennplot, VennDiagram, VennDetail, ggvenn,gplots等。

此文主要展示一下用VennDiagram包繪制高緯度的韋恩圖。


rm(list = ls())
#加載R包
library(VennDiagram)

##VennDiagram輸入數(shù)據(jù)的格式是2~5個向量組成的list
#創(chuàng)建5個小學字母組成的隨機向量
set.seed(727)
V1 <- sample(letters,size = 20)
V2 <- sample(letters,size = 20)
V3 <- sample(letters,size = 20)
V4 <- sample(letters,size = 20) 
V5 <- sample(letters,size = 20)

#繪圖
venn.diagram(x=list(GUO=V1,
                    FU=V2,
                    YA=V3,
                    SE=V4,
                    WANG=V5),
                    filename = 'test_venn.tiff')

這樣一個簡單的GUOFUYASEWANG(國服亞瑟王)的韋恩圖就畫出來,通過參數(shù)給他加點顏色,美觀一下。

venn.diagram(x=list(GUO=V1,
                    FU=V2,
                    YA=V3,
                    SE=V4,
                    WANG=V5),
                    fill=c('red','yellow','blue','grey','green'),#填充一下配色
                    margin = 0.05,#設置一下間距
                    filename = './test_venn2.tiff')

增加配色之后好看了不少。

網(wǎng)站繪制韋恩圖

除了用R繪制韋恩圖,還可以用網(wǎng)站實現(xiàn)。http://www.interactivenn.net/可以繪制2-6維的韋恩圖,不需要學會R也能繪制韋恩圖。同學們可以自行探索。

繪制UpSetPlot圖

有時候自己需要取交集的數(shù)據(jù)集太多,韋恩圖滿足不了,可以采用UpSetplot,它可以將交集數(shù)目通過柱狀圖的方式呈現(xiàn)。以UpSetR包里的movies文件做示例:

rm(list = ls())
#加載R包
library(UpSetR)
#載入movies數(shù)據(jù)集
movies <- read.csv( system.file("extdata", "movies.csv", package = "UpSetR"), header=TRUE, sep=";" )
#查看一下movie數(shù)據(jù)集
view(movies)
dim(movies)

這是一個3883行,21列的數(shù)據(jù)集,包含了1995上映的電影具體情況(如Action是否是運動電影,0表示不是運動電影,1表示是運動電影,以此類推)

#簡單繪制UpSetplot
upset(movies, nsets = 7, #繪制的集合數(shù)目
      mb.ratio = c(0.5, 0.5)#調(diào)整上下兩部分的比例
      order.by = c("freq"))#為按頻率排序

該圖中黑色表示該位置有數(shù)據(jù),灰色的點表示沒有,不同點連線表示存在交集, 不同柱狀圖表示不同的數(shù)目

Hoang的簡書地址:http://m.itdecent.cn/u/1fd4ff43abdc

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容