R語言繪制upset圖

什么是Upset圖?

對于集合的可視化,第一時間想到的都是韋恩圖(venn diagram),一般集合不超過5個的時候,可視化效果還是不錯的。但是一旦數(shù)據(jù)集增加,比如說五個的時候,你就很難從圖中解讀出想要的信息了。即便你把它畫的很美觀,但還是很難直觀找到自己需要的信息。可視化的目的不是炫技,而是快速理解數(shù)據(jù)。而且韋恩圖最大只支持7個數(shù)據(jù)集合。于是這時候就能體會出upset圖的優(yōu)勢了。

輸入數(shù)據(jù):

將不同的集合放到一列

代碼部分

library(UpSetR)
library(VennDiagram) 

#upset_list<-list(H7L1,H7L26,H7L27,H7L28,H7L29,H7L30,H7L31,H7L31,H7L32,H7L33)

upset_dat<-read.table("all.txt",sep ='\t')
upset_list <- list(upset_dat[,1], upset_dat[,2], upset_dat[,3], upset_dat[,4], upset_dat[,5], upset_dat[,6], upset_dat[,7],upset_dat[,8], upset_dat[,9])   # 制作Upset圖搜所需要的列表文件


#names(upset_list) <- (c(H7L1,H7L26,H7L27,H7L28,H7L29,H7L30,H7L31,H7L31,H7L32,H7L33)) 
#names(upset_list) <- colnames(upset_dat[1:9])    # 把列名賦值給列表的key值


###列名
names(upset_list) <- c("HHZ","c2","c3","c4","c5","c6","c7","c8","c9")


upset(fromList(upset_list),  # fromList一個函數(shù),用于將列表轉(zhuǎn)換為與UpSetR兼容的數(shù)據(jù)形式。
      nsets = 100,     # 繪制的最大集合個數(shù)
      nintersects = 30, #繪制的最大交集個數(shù),NA則全部繪制
      order.by = "freq", # 矩陣中的交點是如何排列的。 "freq"根據(jù)交集個數(shù)排序,"degree"根據(jù)
      keep.order = T, # 保持設(shè)置與使用sets參數(shù)輸入的順序一致。默認(rèn)值是FALSE,它根據(jù)集合的大小排序。
      mb.ratio = c(0.6,0.4),   # 左側(cè)和上方條形圖的比例關(guān)系
      text.scale = 0.7 # 文字標(biāo)簽的大小
      )
結(jié)果圖
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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