解決方案有好幾種:
- 網頁版,無腦繪圖,就是麻煩,沒有寫代碼方便
- 極簡版,gplots::venn
- 文藝版,venneuler,不好安裝rJava,參見Y叔
- 酷炫版,VennDiagram
特別注意:
目前主流的韋恩圖都只支持5個類別,多了不能使用韋恩圖。
UpSet某種程度上可以顯示多於5個類別,但是結果不是很直觀,不推薦。
library(ComplexHeatmap) m = make_comb_mat(venn.list) UpSet(m)
1. 網頁版的就不說了,非常簡單,直接輸入數據就行;
R版的輸入都是一種數據結構list,可以單獨出來。
2. 極簡版
options(repr.plot.width=4, repr.plot.height=5) vp <- gplots::venn(list(Nup=names(moduleListN_DEG[["up"]]), Ndown=names(moduleListN_DEG[["down"]]), Gup=names(moduleListG_DEG[["up"]]), Gdown=names(moduleListG_DEG[["down"]])))
3. 還沒成功過,需安裝rJava,代碼如下:
set.seed(2017-11-08) x <- matrix(sample(0:4, 40, TRUE, c(.5, .1, .1, .1, .1)), ncol=4) colnames(x) <- LETTERS[1:4] yyplot::ggvenn(x)
4. VennDiagram,只能保存圖為文件(三種可選:tiff, png or svg),非常實用和美觀,但是不能做下游美化。
library(VennDiagram) venn.diagram(list(Nup=names(moduleListN_DEG[["up"]]), Ndown=names(moduleListN_DEG[["down"]]), Gup=names(moduleListG_DEG[["up"]]), Gdown=names(moduleListG_DEG[["down"]])), fill=c("red","green","blue","yellow"), alpha=c(0.5,0.5,0.5,0.5), imagetype = "tiff", category.names = rep("", 4), height = 600, width = 600, resolution = 100, cex=2, cat.fontface=4, filename="VennDiagram.tiff")
參考:
R作圖 在R中繪制韋恩圖的幾種方法 和 一些漂亮的venn圖
ggplot2版本的維恩圖 - Y叔公眾號