集合的交集一帮采用Venn图进行展示,但当集合数目超过3时,使用Venn图直接展示会显得比较杂乱,我们倾向于使用UpSet展示。 这里,我们介绍UpSet的概念,并展示如何使用UpSet package绘制图.

Venn图绘制

直接在Rstudio窗口显示:

library(VennDiagram)
library(RColorBrewer)
grid.newpage()
venn_plot <- venn.diagram(x = list(smps_clin,smps_mrna,smps_mirna,smps_cnv,smps_meth_cg),category.name=c('clin','mrna','mirna','cnv','meth_cg'),filename = NULL,
)
grid.draw(venn_plot)

UpSet 元素解读


三个条形图表示A,B,C三个集合大小;第一行三个空白⚪表示不存在与A,B, C三个集合的元素,第2-4行表示仅存在于其中一个集合的元素,以此类推. 如下所示

UpSet 包使用

UpSet提供两个转换函数fromList and fromExpression用于格式化数据

  • fromList接受一个命名list,每个元素表示一个集合.
listInput <- list(one = c(1, 2, 3, 5, 7, 8, 11, 12, 13), two = c(1, 2, 4, 5, 10), three = c(1, 5, 6, 7, 8, 9, 10, 12, 13))
upset(fromList(listInput), order.by = "freq")
  • fromExpression函数接受一个命名向量表达式,包含了每个集合的大小,以及交集的大小,交集的名称通过 & 符号相连,例如
expressionInput <- c(one = 2, two = 1, three = 2, `one&two` = 1, `one&three` = 4, `two&three` = 1, `one&two&three` = 2)
upset(fromExpression(expressionInput), order.by = "freq")

  • 直接使用矩阵
> library(UpSetR)
> require(ggplot2)
>
> movies <- read.csv(system.file('extdata','movies.csv',package='UpSetR'),header = T,sep=';')
> head(movies)Name ReleaseDate Action Adventure
1                   Toy Story (1995)        1995      0         0
2                     Jumanji (1995)        1995      0         1
3            Grumpier Old Men (1995)        1995      0         0
4           Waiting to Exhale (1995)        1995      0         0
5 Father of the Bride Part II (1995)        1995      0         0
6                        Heat (1995)        1995      1         0Children Comedy Crime Documentary Drama Fantasy Noir Horror Musical
1        1      1     0           0     0       0    0      0       0
2        1      0     0           0     0       1    0      0       0
3        0      1     0           0     0       0    0      0       0
4        0      1     0           0     1       0    0      0       0
5        0      1     0           0     0       0    0      0       0
6        0      0     1           0     0       0    0      0       0Mystery Romance SciFi Thriller War Western AvgRating Watches
1       0       0     0        0   0       0      4.15    2077
2       0       0     0        0   0       0      3.20     701
3       0       1     0        0   0       0      3.02     478
4       0       0     0        0   0       0      2.73     170
5       0       0     0        0   0       0      3.01     296
6       0       0     0        1   0       0      3.88     940
> upset(movies,nsets=7,nintersects = 30,mb.ratio = c(0.5,0.5),
+       order.by = c('freq','degree'),decreasing = c(T,F))

R语言中使用UpSet包绘制多集合Venn图相关推荐

  1. R语言中的数据处理包dplyr、tidyr笔记

    R语言中的数据处理包dplyr.tidyr笔记 dplyr包是Hadley Wickham的新作,主要用于数据清洗和整理,该包专注dataframe数据格式,从而大幅提高了数据处理速度,并且提供了与其 ...

  2. R语言:使用ComplexHeatmap包绘制热图

    ComplexHeatmap包由顾祖光博士创建,用于绘制美观的热图,用颜色表示数据的聚合程度,相对美观. 使用手册见GitHub链接: https://jokergoo.github.io/Compl ...

  3. R语言中利用jiebaR包实现中文分词

    文章目录 介绍 worker()函数介绍 参数介绍 new_user_word()函数介绍 参数介绍 freq()函数介绍 实例 利用默认库进行分词 利用自定义词库进行分割 通过文本文件添加用户自定义 ...

  4. 用r语言画出y = ax^2 + bx + c,R语言中使用curve函数绘制常用函数曲线

    前面文章中介绍了使用plot函数绘制图形的方法.本文介绍一下使用R中curve函数绘制常见函数曲线的方法. 1.curve函数简介 curve函数语法格式如下: curve(expr, from = ...

  5. R语言中如何利用ggplot2绘制qq图和boxplot图

    文章目录 绘制qq图 函数介绍 geom_qq() 参数介绍 注意事项 例子 Using to explore the distribution of a variable 绘制boxplot 函数介 ...

  6. R语言中的机器学习包

    转载自:http://blog.csdn.net/liuxincumt/article/details/7527917 Machine Learning & Statistical Learn ...

  7. 在R语言中实现sem进行结构方程建模和路径图可视化

    最近我们被客户要求撰写关于结构方程建模的研究报告,包括一些图形和统计输出. 相关视频:结构方程模型SEM分析心理学营销数据路径图可视化|数据分享 什么是结构方程建模SEM和R语言心理学和营销研究数据路 ...

  8. 用r语言画出y = ax^2 + bx + c,R语言中如何使用最小二乘法

    这里只是介绍下R语言中如何使用最小二乘法解决一次函数的线性回归问题. 代码如下: > x > y > lsfit(x,y) 结果如下: $coefficients Intercept ...

  9. R语言中主要的颜色对照图

    R语言作图,颜色的选择是比较头疼的事情,以下向大家分享R语言中主要的几百种颜色对照图.

最新文章

  1. 《introduction to information retrieval》信息检索学习笔记3 词典和容错式检索
  2. n/2^n的前n项和,Sn=∑n/2^n
  3. 001 GIt的基本操作
  4. springSecurity源码分析-spring-security.xml文件配置
  5. JSP关于用户安全退出的问题
  6. Ubuntu 16.04安装Chrome浏览器
  7. leetcode1437. 是否所有 1 都至少相隔 k 个元素
  8. template标签_Django实战: 利用自定义模板标签实现仿CSDN博客月度归档
  9. Android音频系统之AudioFlinger(一)
  10. 一、Spark安装与部署
  11. 原子结构示意图全部_所有原子结构示意图 (1)
  12. m 序列性质的简单证明
  13. 信息收集(部分,不全面)
  14. macd指标计算机应用,macd是怎么计算的
  15. 计算机组装与维护毕业论文范文,计算机应用毕业论文 计算机组装与维护
  16. 杭州市民卡领取查询网址
  17. CSS的class常用命名规则
  18. 农村信用社计算机类资料,农村信用社笔试复习资料:计算机知识(3)
  19. word中目录出现省略号疏密不一致
  20. 一位微软技术大牛,工作8年的职业经验分享

热门文章

  1. unity android输入法,Unity打包Android 输入法弹出界面上移的问题
  2. Android输入法架构学习总结
  3. 中芯国际二零一八年第三季度业绩公布
  4. 微型计算机中的i3或i51般指的是什么,cpu到底有什么区别,i3,i5,i7?
  5. ARM使用术语清除(flush)和清理(clean)表示对cache的两种基本操作
  6. win10取消默认文件打开方式
  7. java实现九宫格解锁_轻松实现Android自定义九宫格图案解锁
  8. 2019_ACL_Multimodal Transformer for Unaligned Multimodal Language Sequences
  9. 我的世界java泰坦生物版_我的世界泰坦生物MOD
  10. 移动端 - adb shell常用命令