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

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

文章目录

  • 构造数据
  • queries参数

书接上回!

今天继续学习upsetR包的queries参数的用法!

构造数据

为了方便演示,下面新建一个数据框(data.frame)形式的数据集,这个数据框是一个0-1矩阵的形式,0代表没有,1代表有。

但是为了方便大家学习,我将从一个*列表格式(因为画韦恩图用列表格式比较多)*进行变换,变为一个0-1矩阵形式。

library(tidyr)
library(dplyr)
##
## 载入程辑包:'dplyr'
## The following objects are masked from 'package:stats':
##
##     filter, lag
## The following objects are masked from 'package:base':
##
##     intersect, setdiff, setequal, union# 构造一个列表,每个元素长度相等
df <- list(a = sample(1:500,400),b = sample(1:500,400),c = sample(1:500,400),d = sample(1:500,400),e = sample(1:500,400),f = sample(1:500,400),g = sample(1:500,400)
)# 变为0-1矩阵,你如果对下面这段代码感到疑惑,请查看我前面发的关于长宽数据转换的推文!
df <- df %>% bind_cols() %>% pivot_longer(cols = 1:7) %>% mutate(aa = 1) %>% pivot_wider(names_from = name,values_from = aa,values_fill = 0) %>% mutate(col1 = sample(1995:2022,500,replace = T),col2 = sample(1000:10000,500),group = sample(LETTERS,500,replace = T),.before = 1)glimpse(df)
## Rows: 500
## Columns: 11
## $ col1  <int> 2010, 2015, 2018, 2002, 2008, 2016, 2009, 2017, 1997, 2006, 2022~
## $ col2  <int> 4696, 5434, 6239, 8756, 7913, 4093, 6060, 2778, 7422, 7509, 5172~
## $ group <chr> "V", "F", "C", "T", "J", "L", "O", "N", "R", "P", "G", "A", "O",~
## $ value <int> 497, 1, 250, 404, 146, 290, 179, 72, 43, 153, 450, 185, 480, 85,~
## $ a     <dbl> 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 1, 0, 1~
## $ b     <dbl> 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1~
## $ c     <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1~
## $ d     <dbl> 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1~
## $ e     <dbl> 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1~
## $ f     <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1~
## $ g     <dbl> 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1~
df <- as.data.frame(df) # 不能是tibble哦!

注意!!这个数据的前4列都是属性的描述,后面7列才是真正的集合!在画图时会自动识别。

queries参数

昨天简单讲了一下queries参数,了解它基本的作用就是查询特定的数据,今天继续扩展。

  • 可以查询特定交集,此时用intersects
  • 也可以查询符合条件(此时就用到了属性的那几列)的某些元素,此时用elements
upset(df,order.by = "freq",main.bar.color = "skyblue",sets.bar.color = "grey70",nintersects=20,## 添加queryqueries = list(# 查询特定交集list(query = intersects, params  = list("g","f","e"),color = "orange",active = T),list(query = intersects, params  = list("d","f","c"),color = "red",active = T),# 查询元素,选择col1这一列为2010~2020的元素list(query = elements, params = list("col1",2010:2020),color = "tomato",active = T) ))

除此之外,还可以配合expression参数,在查询到的结果中继续限定条件:

upset(df,order.by = "freq",main.bar.color = "skyblue",sets.bar.color = "grey70",nintersects=20,## 添加queryqueries = list(# 查询特定交集list(query = intersects, params  = list("g","f","e"),color = "orange",active = T,query.name="query1"),list(query = intersects, params  = list("d","f","c"),color = "red",active = T,query.name="hah"),# 查询元素,选择col1这一列为2010~2020的元素list(query = elements, params = list("col1",2010:2020),color = "tomato",active = T,query.name="elements") ),# 在queries的基础上,再添加条件expression = "col2 > 5000 & value > 200",# 添加图例query.legend = "top")

OK,以上就是queries的常见用法!真的是非常强大!简直和和韦恩图不是一个量级的。

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

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

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

  1. 韦恩图进阶之upsetplot :01

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

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

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

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

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

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

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

  5. Python50图之01散点图 02气泡图

    第一期 关联图:01 散点图 & 02 气泡图 2018年12月,大佬博主Selva Prabhakaran在自己运营的机器学习网站MachineLearning Plus上发布了博文:Pyt ...

  6. 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元

    作者: 刘永鑫 日期:2017-7-1 阅读时长:10min 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子.宏基因组.宏转录组和代谢 ...

  7. R语言可视化韦恩图实战:VENN DIAGRAM

    R语言可视化韦恩图实战:VENN DIAGRAM #韦恩图 # load Venn diagram package library("VennDiagram")# move to ...

  8. 韦恩图——帮助你更好地表达多个数据集合之间的相交关系

            维恩图(Venn),也叫温氏图.维恩图.范氏图,用于显示元素集合重叠区域的图表.维恩图是关系型图表,通过图形与图形之间的层叠关系,来表示集合与集合之间的相交关系.一个完整的韦恩图包含三 ...

  9. linux 韦恩图两个,如何使用R来绘制韦恩图(Venn Diagram)

    2017.12.15日厦大生命科学前沿课上,一位博士师姐分享的一篇论文中,多次应用韦恩图,看起来特别美,于是特地去R语言官网阅读关于Venn Diagram的使用.从网上高手博客中看到一些例子,故敲一 ...

最新文章

  1. 软件开发有多少种方式
  2. 百练-16年9月推免-B题-字符串判等
  3. 战网服务器修改 win8,如何修改战网客户端?修改战网客户端的方法
  4. 【转】一个ASP.NET MVC中ajax调用WebApi返回500 Internal Server Error的调错方法。
  5. 梦幻西游服务器每周几维护,梦幻西游5月6日维护公告:唯美版地图不再更新
  6. Emmet Cheat Sheet(Sublime编辑)
  7. 用Linux命令行实现删除和复制指定类型的文件
  8. ios plist_iOS属性列表(plist)示例
  9. oracle数据库执行sql很慢
  10. 瀏覽器擴展──釋放你的個性
  11. 135 、137、139端口等主要用途
  12. mysql是dbf格式吗_数据库文件是什么格式啊
  13. ios闹钟铃声实现代码
  14. AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣
  15. 出行必备:手机1秒调出健康码 !
  16. 帝国cms php循环,帝国CMS listshowclass循环栏目标签
  17. *ptr++、*++ptr、++*ptr和(*ptr)++
  18. 互联网快讯:华为5G实现全网规模化商用;极米年货节多款产品持续热销;三星显示器公司6月停产LCD
  19. 杰理之AUX/LINEIN 设计注意【篇】
  20. GitHub被百万粉博主封杀!这份Java面试宝典做了什么?

热门文章

  1. 【算法小总结】二分图的最大独立集
  2. 美团大象、头条Lark,为什么小巨头都要做自己的IM?
  3. java enum 单例模式_Java最给力的单例模式
  4. 笔记本win10更新无线服务器,win10系统笔记本无线网络找不到的解决方法
  5. 谷歌注册大陆手机号不可用
  6. 游戏机工业计算机死机,引起死机的五种原因分析及解决!
  7. ipad可以分屏吗_想用iPad学习,不买pencil可以吗?
  8. 武学之精要在内外兼修
  9. 使用Python按文件名所包含的特定关键词实现文档分类整理
  10. Opencv-锐化增强算法(USM)