Upset plot多组取交集
(113条消息) 进阶版Venn plot:Upset plot入门实战代码详解——UpSetR包介绍_ntuYision的博客-CSDN博客_upsetr
集合数<5使用Venn plot更加清晰。
集合数>5使用Upset plot更加清晰。
Upset plot熟悉Venn plot的朋友只需稍作变换即可很好地理解Upset plot。
Fig.2是一个简单的Upset plot,图像可以分为上部分(条形图)和下部分(左侧的条形图,中间的集合名称和右侧的点阵)。
左下方的横行条形图展示了每个集合的元素数(此处元素数由input文件直接得到),
左中方的集合名称由input文件中命名的集合名得到
左下方的点阵应与上方的条形图一起解读。有颜色的点代表涉及到相关集合,即有颜色的点对应的左中的集合一起取交集。
以红点为例,代表Drama与Drama集合取交集,即自身取交集。
蓝点代表Action集合与Drama取交集,对应的条形图数值为68,即有68个元素既在Action中又在Drama中。以此类推便可理解黄点。
上方的条形图代表着每个交集对应的元素数。
参数
https://zhuanlan.zhihu.com/p/370210775
order.by = "freq"#按频率排序,默认是升序,可以使用 decreasing = TRUE 让其降序排列
nsets = 6 将集合范围限制在最大的 6 个集合
number.angles 来设置柱状图柱子上方数字的倾斜角度;
使用 point.size 和 line.size 来设置矩阵点图中点和线的大小;
mainbar.y.label 和 sets.x.label 可以设置柱状图和条形图的轴标签;
text.scale 包含 6 个值,用于指定图上所有文本标签的大小。参数值的顺序为:柱状图的轴标签和刻度,条形图的轴标签和刻度,集合名称,柱子上方表示交集大小的数值
mb.ratio 用于控制上下图形所占比例
empty.intersections = "on" 想要显示交集为空的组合,可以设置 empty.intersections 参数
指定需要展示的集合
upset(movies,
int c("Action", "Comedy", "Drama",
"Mystery", "Thriller", "Romance", "War"),
mb.ratio = c(0.55, 0.45)
)
想要让集合按照 sets 参数中指定的出现的顺序排列,可以设置 keep.order = TRUE
颜色
matrix.color Color of the intersection points
main.bar.color Color of the main bar plot
sets.bar.color Color of set size bar plot
shade.color Color of row shading in matrix
"Normal"="lightblue", "Obesity"="#jiao"