韦恩图进阶之upsetplot:02
获取更多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相关推荐
- 韦恩图进阶之upsetplot :01
获取更多R语言知识,请关注公众号:医学和生信笔记 医学和生信笔记,专注R语言在临床医学中的使用,R语言数据分析和可视化.主要分享R语言做医学统计学.meta分析.网络药理学.临床预测模型.机器学习.生 ...
- 在线作图|如何画韦恩图(包含upset图)
韦恩图(包含upset图) 韦恩图(Venn diagram)用于展示在不同的事物群组(集合)之间的联系.R 语言中的维恩图绘制有很多包,Vennerable(最多9维),VennDigram(最多5 ...
- 宏基因组扩增子3统计绘图:中文首发,最详系,零基础(箱线图、散点图、热图、曼哈顿图、火山图、韦恩图、三元图、网络图)
本网内容首发"宏基因组"公众号,更佳阅读体验.更多相关文章,欢迎点我跳转至公众号阅读 注:文为蓝色字均为文章链接,可点击直达 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指 ...
- 扩增子统计绘图6韦恩图:比较组间共有和特有OTU或分类单元
本网对Markdown排版支持较差,对格式不满意的用户请跳转至 或"宏基因组"公众号阅读: 写在前面 优秀的作品都有三部分曲,如骇客帝国.教父.指环王等. 扩增子系列课程也分为三部 ...
- Python50图之01散点图 02气泡图
第一期 关联图:01 散点图 & 02 气泡图 2018年12月,大佬博主Selva Prabhakaran在自己运营的机器学习网站MachineLearning Plus上发布了博文:Pyt ...
- 扩增子图表解读6韦恩图:比较组间共有和特有OTU或分类单元
作者: 刘永鑫 日期:2017-7-1 阅读时长:10min 背景介绍(Introduction) 宏基因组学 宏基因组学目前的主要研究方法包括:16S/ITS/18S扩增子.宏基因组.宏转录组和代谢 ...
- R语言可视化韦恩图实战:VENN DIAGRAM
R语言可视化韦恩图实战:VENN DIAGRAM #韦恩图 # load Venn diagram package library("VennDiagram")# move to ...
- 韦恩图——帮助你更好地表达多个数据集合之间的相交关系
维恩图(Venn),也叫温氏图.维恩图.范氏图,用于显示元素集合重叠区域的图表.维恩图是关系型图表,通过图形与图形之间的层叠关系,来表示集合与集合之间的相交关系.一个完整的韦恩图包含三 ...
- linux 韦恩图两个,如何使用R来绘制韦恩图(Venn Diagram)
2017.12.15日厦大生命科学前沿课上,一位博士师姐分享的一篇论文中,多次应用韦恩图,看起来特别美,于是特地去R语言官网阅读关于Venn Diagram的使用.从网上高手博客中看到一些例子,故敲一 ...
最新文章
- 软件开发有多少种方式
- 百练-16年9月推免-B题-字符串判等
- 战网服务器修改 win8,如何修改战网客户端?修改战网客户端的方法
- 【转】一个ASP.NET MVC中ajax调用WebApi返回500 Internal Server Error的调错方法。
- 梦幻西游服务器每周几维护,梦幻西游5月6日维护公告:唯美版地图不再更新
- Emmet Cheat Sheet(Sublime编辑)
- 用Linux命令行实现删除和复制指定类型的文件
- ios plist_iOS属性列表(plist)示例
- oracle数据库执行sql很慢
- 瀏覽器擴展──釋放你的個性
- 135 、137、139端口等主要用途
- mysql是dbf格式吗_数据库文件是什么格式啊
- ios闹钟铃声实现代码
- AI 让朱茵秒变杨幂,但我拒绝成为波多野结衣
- 出行必备:手机1秒调出健康码 !
- 帝国cms php循环,帝国CMS listshowclass循环栏目标签
- *ptr++、*++ptr、++*ptr和(*ptr)++
- 互联网快讯:华为5G实现全网规模化商用;极米年货节多款产品持续热销;三星显示器公司6月停产LCD
- 杰理之AUX/LINEIN 设计注意【篇】
- GitHub被百万粉博主封杀!这份Java面试宝典做了什么?