Upset plot可以将共同出现的变量排列成集合,并展示它们的频率的柱状图。诀窍在于,它试图让你很容易看到组成集合的元素。 弥补了种类太多而Venn图展示不充分的局限性。

特点主要有:

使用感知上有效的视觉编码,也就是说,使之容易准确地阅读数据。
不仅要使交叉点可视化,还要使交叉点的组合可视化(例如,涉及两个特定集合的所有交叉点)。
可视化关于交叉点的属性。有趣的不仅仅是一个交叉点的大小,我们还想知道与交叉点相关的数据是否不同或相似。

在R中可以UpSetR实现

安装

Install the latest released version from CRAN

install.packages("UpSetR")

Download the latest development code of UpSetR from GitHub using devtools with

devtools::install_github("hms-dbmi/UpSetR")

例子

movies <- read.csv( system.file("extdata", "movies.csv", package = "UpSetR"), header=T, sep=";" )
mutations <- read.csv( system.file("extdata", "mutations.csv", package = "UpSetR"), header=T, sep = ",")

Movie数据集由GroupLens实验室创建,由Bilal Alsallakh策划,突变数据集最初由TCGA联盟创建,代表了多形性胶质母细胞瘤队列中100个突变最多的基因。

upset(movies,attribute.plots=list(gridrows=60,plots=list(list(plot=scatter_plot, x="ReleaseDate", y="AvgRating"),
list(plot=scatter_plot, x="ReleaseDate", y="Watches"),list(plot=scatter_plot, x="Watches", y="AvgRating"),
list(plot=histogram, x="ReleaseDate")), ncols = 2))

upset(mutations, sets = c("PTEN", "TP53", "EGFR", "PIK3R1", "RB1"), sets.bar.color = "#56B4E9",
order.by = "freq", empty.intersections = "on")

一个使用两组查询(战争电影和黑色电影)的例子,以及比较平均评分(顶部)和平均评分与电影被观看次数(底部)的属性图。

upset(movies, attribute.plots=list(gridrows = 100, ncols = 1,
plots = list(list(plot=histogram, x="AvgRating",queries=T),
list(plot = scatter_plot, y = "AvgRating", x = "Watches", queries = T))),
sets = c("Action", "Adventure", "Children", "War", "Noir"),
queries = list(list(query = intersects, params = list("War"), active = T),
list(query = intersects, params = list("Noir"))))

更详细绘图方案可参见:Chapter 8 UpSet plot | ComplexHeatmap Complete Reference (jokergoo.github.io)

Reference:

Upset Plots | R-bloggers

Visualizing Intersecting Sets (jku-vds-lab.at)

GitHub - hms-dbmi/UpSetR: An R implementation of the UpSet set visualization technique published by Lex, Gehlenborg, et al..

http://www.nature.com/nmeth/journal/v11/n8/abs/nmeth.3033.html

如果要使用UpSetR包,需要引用 :

Jake R Conway, Alexander Lex, Nils Gehlenborg UpSetR: An R Package for the Visualization of Intersecting Sets and their Properties doi: https://doi.org/10.1093/bioinformatics/btx364

Upset plot的R实现相关推荐

  1. R语言plotly可视化:plotly可视化分裂的分组小提琴图、每个小提琴图内部分为两组数据、每个分组占小提琴图的一半(Split violin plot in R with plotly)

    R语言plotly可视化:plotly可视化分裂的分组小提琴图.每个小提琴图内部分为两组数据.每个分组占小提琴图的一半(Split violin plot in R with plotly) 目录

  2. R语言ggplot2可视化分组的重叠图实战:grouped overlay plot

    R语言ggplot2可视化分组的重叠图实战:grouped overlay plot 目录 R语言ggplot2可视化分组的重叠图实战:grouped overlay plot #仿真数据

  3. R语言:plot()函数参数合集

    参考:R语言基础备忘-plot()详解 最近用R语言画图,plot 函数是用的最多的函数,而他的参数非常繁多,由此总结一下,以供后续方便查阅. plot(x, y = NULL, type = &qu ...

  4. r语言plot函数设置y轴的范围及刻度_R语言之简单绘图

    一:引例 plot()是R中为对象作图的一个泛型函数(它的输出将根据所绘制对象类型的不同而变化). 本例中,plot(x, y, type="b")将x置于横轴,将y置于纵轴,绘制 ...

  5. R plot图片背景设置为透明_R语言实战 牛国庆

    [toc] 第一章 1.3.2 R中帮助函数 R中用于管理R工作空间的函数 函数setwd()不会自动创建一个不存在的目录.如果必要的话,可以使用函数dir.create()来创建新目录,然后使用se ...

  6. 超详细的R语言热图之complexheatmap系列(1)

    获取更多R语言和生信知识,请关注公众号:医学和生信笔记. 公众号后台回复R语言,即可获得海量学习资料! 目录 第一章 简介 1.1 设计理念 1.2 各章节速览 第二章 单个热图 2.1 颜色 2.2 ...

  7. 使用R语言ggplot2包绘制pathway富集分析气泡图(Bubble图):数据结构及代码

    气泡图是在笛卡尔坐标系同加入大小的参数所形成的可以表示三个变量关系的图例.在对基因完成GO/KEGG分析后,使用气泡图可以直观的展示pathway.pvalue.count之间的关系.下面为使用R语言 ...

  8. R语言I绘制等高线图

    等高线指的是地形图上高程相等的各点所连成的闭合曲线.而等高线图(contour map) 是可视化二维空间标量场的基本方法,可以将三维数据使用二维的方法可视化,同时用颜色视觉特征表示第三维数据 代码如 ...

  9. matplotlib.pyplot.plot 用法详解

    python matplotlib演示官网 https://matplotlib.org/xkcd/users/pyplot_tutorial.html https://matplotlib.org/ ...

最新文章

  1. SpringBoot2.x 官方推荐缓存框架-Caffeine高性能设计剖析
  2. 压力测试工具gatling安装和介绍
  3. firewall添加白名单_firewall的规则设置与命令(白名单设置)
  4. jvm(4)-虚拟机性能监控与故障处理工具
  5. 《Java8实战》笔记汇总
  6. 使用flask调用接口去加载模型和数据集,避免每次运行都会重复加载数据集或模型,节约大量等待时间
  7. 23篇大数据系列(二)scala基础知识全集(史上最全,建议收藏)
  8. allt什么意思_Allt是什么意思
  9. 机器视觉使用光源的几个选择标准
  10. 聊聊工作与生活的平衡
  11. Spring中的@Autowired自动装配
  12. adb调试工具下载使用
  13. MODIS数据的简介和下载(二)——MODIS数据下载方式(FTP)
  14. 华为交换之间静态路由配置实例
  15. 联想启动Kind City项目:交互式全球合作鼓励同理心,共创建立于善意之上的未来
  16. mysql 十年_十年前的老问题,MySQL 8.0有了答案
  17. 2017ccpc哈尔滨站部分简要题解
  18. Android省市县三级联动 真实项目抽出 调用只需3行代码
  19. Java程序员转行可以做什么?程序员
  20. oracle序列号、

热门文章

  1. 3款App,让你买菜不用愁,送给贤妻的你
  2. java带头结点的单链表_java编写带头结点的单链表
  3. 【校招VIP】产品项目考察之可行性分析
  4. windows10操作系统无法找到输入输出声音设备(小喇叭显示红叉)
  5. [生存志] 第85节 商鞅变法举屠刀
  6. 调用iframe中的js方法_SolidWorks中标准件库的创建及调用方法
  7. 腾讯大数据之 TDW 计算引擎解析——Shuffle
  8. leetcode 1399 数位和简单题目
  9. CI根据IP获取地址
  10. linux的cc防火墙,LNMP下安裝CSF防火墙、CC攻击解决方法