获取更多R语言知识,请关注公众号:医学和生信笔记

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。

文章目录

  • upsetR
    • 基础使用
    • 个性化特定列(选择指定列)

前面用2篇文章介绍了韦恩图的多种画法!

普通的韦恩图显示2-4个集合效果比较好,但是如果有很多个集合,韦恩图就不太美观了,即使是支持最多7个集合的ggvenndiagram,因为彼此交叉太多,已经不利于呈现数据细节了。

library(ggVennDiagram)
library(ggplot2)sets <- list(a = sample(1:500,300),b = sample(1:500,350),c = sample(1:500,420),d = sample(1:500,300),e = sample(1:500,400),f = sample(1:500,380),g = sample(1:500,400)
)ggVennDiagram(sets,category.names = c("set 1","set 2","set 3","set 4","set 5","set6","set7"), set_size = 6,label = "none", edge_lty = "solid", edge_size = 1.2 ) +scale_fill_gradient(low = "grey90",high = "grey60")

这时候使用upset plot可能是更加合适的选择。

在R里面有很多包可以画upset plot,我们主要学习UpSetRcomplexheatmap

upsetR

基础使用

这个包的基础使用方法其实很简单,对于上面的数据集,直接使用就行。

library(UpSetR)upset(fromList(sets),nsets = 7) # 也可以从矩阵或者数据框读取

这个图细节很多,但是不难理解,主题就是3各部分组成的。

左边条形显示每个集合元素数量,上面条形图展示每个交集内元素数量,下面的点(矩阵)表示所有出现的交集。

很多细节都是可以调整的,大家可以通过?upset查看所有支持的参数,下面介绍一些常用的。

upset(fromList(sets),order.by = "freq", # 排序方式nsets = 5, # 展示几个集合,按照数量从大到小排列,或者使用sets参数指定集合名字mb.ratio = c(0.55,0.45), # 条形图和矩阵的相对比例number.angles = 30, # 条形图上面数字角度point.size = 3, # 点的大小line.size = 1.2, # 线条粗细mainbar.y.label = "size of intersection", # 上面条形图的标题sets.x.label = "the number of each sets", # 坐标条形图的标题text.scale = c(1.3, 1.3, 1, 1, 2, 1.2) # 元素大小)


text.scale控制7个元素的大小,要么提供1个数,要么提供7个数,每个数对应的元素种类如下:
intersection size title, intersection size tick labels, set size title, set size tick labels, set names, numbers above bars

个性化特定列(选择指定列)

可以通过一些简单的参数直接改变一些元素的颜色。

upset(fromList(sets),order.by = "freq",matrix.color = "firebrick",main.bar.color = "steelblue",sets.bar.color = "grey70")

如果要指定某一个交集,改变外观,就需要queries参数。

upset(fromList(sets),order.by = "freq",main.bar.color = "steelblue",sets.bar.color = "grey70",# 选择指定交集,突出显示queries = list(list(query = intersects, params  = list("b","f","e"),color = "orange",active = T), # 选择b,f,e的交集list(query = intersects, params  = list("g","f","e"),color = "red",active = T) # 选择e,f,g的交集 ))

顾名思义,这个queries参数其实就是一个查询,把符合查询条件的交集找出来,然后赋予特定的颜色标记等,达到突出显示某些结果的作用。

关于这个queries还有很多其他用法,不过需要的数据格式也是要提供更多的信息,大家有需要的可以至官网查看更多内容。或者等我更新

明天继续介绍这个upsetr包,十分强大,可以自定义的细节太多了~

获取更多R语言知识,请关注公众号:医学和生信笔记

医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化。主要分享R语言做医学统计学、meta分析、网络药理学、临床预测模型、机器学习、生物信息学等。

韦恩图进阶之upsetplot :01相关推荐

  1. 韦恩图进阶之upsetplot:02

    获取更多R语言知识,请关注公众号:医学和生信笔记 医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化.主要分享R语言做医学统计学.meta分析.网络药理学.临床预测模型.机器学习.生 ...

  2. 在线作图|如何画韦恩图(包含upset图)

    韦恩图(包含upset图) 韦恩图(Venn diagram)用于展示在不同的事物群组(集合)之间的联系.R 语言中的维恩图绘制有很多包,Vennerable(最多9维),VennDigram(最多5 ...

  3. 宏基因组扩增子3统计绘图:中文首发,最详系,零基础(箱线图、散点图、热图、曼哈顿图、火山图、韦恩图、三元图、网络图)

    本网内容首发"宏基因组"公众号,更佳阅读体验.更多相关文章,欢迎点我跳转至公众号阅读 注:文为蓝色字均为文章链接,可点击直达 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指 ...

  4. 扩增子统计绘图6韦恩图:比较组间共有和特有OTU或分类单元

    本网对Markdown排版支持较差,对格式不满意的用户请跳转至 或"宏基因组"公众号阅读: 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指环王等. 扩增子系列课程也分为三部 ...

  5. MATLAB | 全网唯一,使用MATLAB绘制好看的韦恩图(venn)

    韦恩图绘制的代码MATHWORKS上也有,不过最多只支持四组绘制,于是我参考R语言ggVennDiagram包制作了一款支持7组样本的韦恩图绘制MATLAB函数. 注意:仅代码无法运行,需要导入.ma ...

  6. 《融智学进阶文集》01:间接计算模型和间接形式化方法

    <融智学进阶文集>01: 间接计算模型和间接形式化方法 01-间接计算模型和间接形式化方法_邹晓辉.pdf 怎么采用融智学七遍通方法熟悉原创文本? 对照阅读 摘要: 本文旨在:从人机交互界 ...

  7. python 画韦恩图(venn)代码(两组和三组数据),简单易学易上手

    韦恩图除了用R可以画之外,用python也可以画,通过对两个阶段的对应的geneid进行韦恩图展示,即可以知道两个阶段重叠的内容有多少,并通过写代码,取出两个阶段重叠部分的数据. import mat ...

  8. Mysql进阶优化篇01——四万字详解数据库性能分析工具(深入、全面、详细,收藏备用)

    前 言 ?? 作者简介:,长跑型选手,立志坚持写10年博客,专注于java后端 ?? 专栏简介:mysql进阶,主要讲解mysql数据库进阶知识,包括索引.数据库调优.分库分表等 ?? 文章简介:本文 ...

  9. 测试工程师进阶,从0-1学习Cucumber之基于behave框架自动化测试教程(三)

    目录 前情提要 环境搭建前 behave 环境搭建 behave 常见用法demo demo one:如何在feature的step中传入参数 demo two:如何在feature的step中传入大 ...

最新文章

  1. Scheme来实现八皇后问题(2)
  2. Java算法-符号~
  3. html:(20):使用下拉框进行多选和使用提交按钮提交
  4. cad画直角命令_炸了,CAD fro命令配合tk命令,极轴追踪无敌!
  5. 的driver_Spark源码解析(三)----Driver启动、注册Application
  6. 信号调制产生边频的原理及希尔伯特解调
  7. JAVA后端常用框架SSM,redis,dubbo等
  8. #55 #56 #58 #59 #60 #66
  9. java页面分页显示代码_通用分页jsp页面显示
  10. 深入理解Core Data
  11. 华为路由器交换机配置命令大整合,非常全,附pdf下载!
  12. AE贝塞尔曲线生成插件Bezier Node mac版
  13. thinkpad解决Win8.1电源管理的方法
  14. Win7自带的壁纸路径
  15. 网吧服务器怎么加无线路由器,网吧路由器怎么设置 网吧路由器设置方法【详细步骤】...
  16. 华为防火墙企业双出口专线,配置策略路由实现多个ISP出接口的智能选路和双向NAT
  17. outlook登录企业邮箱和qq邮箱
  18. 机器学习 鸢尾花分类的原理和实现(一)
  19. 编译mimikatz
  20. 【万能工具箱】PDF转word/去水印/编辑+图片处理+OCR识别,60+功能,一个软件搞定!

热门文章

  1. C罗“登陆”亚平宁半年:英雄迟暮还是越老越妖?
  2. mysql cpu使用率100_Mysql CPU使用率长期100%的解决思路备忘
  3. 玄魂工作室培训 CTF(1)
  4. 准确找出QQ群里长期潜水的成员踢出去(转)
  5. 互联网创业|你把网校平台研发好了,运营打算扔给谁?
  6. PHP的四个文件包含函数是什么
  7. java 二元牛顿迭代法求解二元方程组
  8. 大部分客户的采购习惯及采购周期,做外贸的你一定要知道!
  9. 大数据治理平台建设方案(文末附PDF下载)
  10. 提取论文中公式神奇(写论文的福音)