什么是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é)果圖