本文总结一下:韦恩图、upset图。
1. 韦恩图
1.1 ggvenn
利用ggvenn绘制韦恩图,ggvenn的输入是一个list。
1 | library(ggvenn) |
ggvenn默认将所有的set都绘制韦恩图,也可以通过set名字指定数据集绘制韦恩图。
1 | ggvenn(a) |
1 | ggvenn(a,c("A","B")) |
1 | ggvenn(a,c("A","B","C")) |
美化一下:
1 | list(A=a[[1]],B=a[[2]],C=a[[3]],D=a[[4]]) %>% |
1.2 VennDiagram
利用VennDiagram包绘制韦恩图,会保存到文件里。
1 | venn.plot <- venn.diagram( |
1.3 VennDiagram提取交集元素
VennDiagram包中的函数get.venn.partitions()可以实现这个功能:
1 | venn_list <- list(A=c(1,2,3,5,7),B=c(2,3,4,1,6),C=c(2,3,7,6,8),D=c(1,2,5,6,3)) |
venn4_inter.txt结果如下:
1 | A B C D ..count.. values |
2. upset图
UpSetR 提供了两个转换函数 fromList 和 fromExpression 用于格式化数据。
1 | venn_list <- list(A=c(1,2,3,5,7,9,10),B=c(2,3,4,1,6),C=c(2,3,7,8),D=c(1,2,5,6,3,5,8,10,14,15)) |
等价于:
1 | b <- fromList(venn_list) |
order.by默认升序排列,降序排列加decreasing=FALSE:
1 | upset(fromList(venn_list), order.by = "freq") |
1 | upset(fromList(venn_list), order.by = "freq",descreasing = FALSE) |
绘制部分集合:
1 | upset(fromList(venn_list), nsets=2, order.by = "freq") |
美化:
1 | upset(fromList(venn_list), nsets = 6, |
text.scale 参数值的顺序为:
- 柱状图的轴标签和刻度
- 条形图的轴标签和刻度
- 集合名称
- 柱子上方表示交集大小的数值
参考资料: