UpSet|多集合可视化,韦恩图?upSet!

简介: UpSet|多集合可视化,韦恩图?upSet!


介绍一个R包UpSetR,专门用来集合可视化,当多集合的韦恩图不容易看的时候,就是它大展身手的时候了。

一 载入R包 数据


#安装及加载R包
#install.packages("UpSetR")
library(UpSetR) 
#载入数据集
data <- read.csv("upSet.csv",header=TRUE)
#先大致浏览一下该数据集,数据集太长,就只看前几列
head(data,6)

二 upSet集合可视化


使用UpsetR包里面的upset()函数绘制集合可视化图形。


1. 基本参数


upset(data, 
      sets = c("Action", "Adventure", "Comedy", "Drama", "Fantasy" , "Children","Crime"),#查看特定的几个集合 
      mb.ratio = c(0.55, 0.45),#控制上方条形图以及下方点图的比例 
      order.by = "freq", #如何排序,这里freq表示从大到小排序展示 
      keep.order = TRUE, #keep.order按照sets参数的顺序排序 
      number.angles = 30, #调整柱形图上数字角度 
      point.size = 2, line.size = 1, #点和线的大小 
      mainbar.y.label = "Genre Intersections", sets.x.label = "Movies Per Genre", #坐标轴名称 
      text.scale = c(1.3, 1.3, 1, 1, 1.5, 1)) #六个数字,分别控制c(intersection size title, intersection size tick labels, set size title, set size tick labels, set names, numbers above bars)

2. queries参数

queries参数分为四个部分:query, param, color, active;
query: 指定哪个query,UpSetR有内置,也可以自定义;
param: list, query作用于哪个交集
color:每个query都是一个list,里面可以设置颜色,没设置的话将调用包里默认的调色板;
active:被指定的条形图:TRUE显示颜色,FALSE在条形图顶端显示三角形;
upset(data, main.bar.color = "black",
     queries = list(list(query = intersects,   #UpSetR 内置的intersects query
                         params = list("Drama"), ##指定作用的交集
                         color = "red", ##设置颜色,未设置会调用默认调色板
                         active = F,   # TRUE:条形图被颜色覆盖,FALSE:条形图顶端显示三角形
                         query.name = "Drama"), # 添加query图例
                    list(query = intersects,  params = list("Action", "Drama"),
                         active =T,
                         query.name = "Emotional action"),
                    list(query = intersects,  params = list("Drama", "Comedy","Action"),
                         color = "orange", active = T)),
     query.legend = "top")

可以看到 list("Drama") ,list("Action", "Drama") 和 list("Drama", "Comedy", "Action") 均根据 color 设置 显示了不同的颜色。

三 attribute.plots参数

添加属性图,内置有柱形图、散点图、热图等


3.1 添加柱形图和散点图

upset(data, main.bar.color = "black",
     queries = list(list(query = intersects, params = list("Drama"), color = "red",
                         active = F,  query.name = "Drama"),
                    list(query = intersects,  params = list("Action", "Drama"),
                         active =T,query.name = "Emotional action"),
                    list(query = intersects,  params = list("Drama", "Comedy","Action"),
                         color = "orange", active = T)),  
     attribute.plots = list(gridrows = 45, #添加属性图
                            plots = list(
                                list(plot = scatter_plot, #散点图
                                     x = "ReleaseDate", y = "AvgRating", #横纵轴的变
                                     queries = T), #T 则显示出上面queries定义的颜色
                                list(plot = histogram, x = "ReleaseDate", queries = F)),
                            ncols = 2), # 添加的图分两列
     query.legend = "top") #query图例在最上方

3.2 添加箱线图

每次最多添加两个箱线图

upset(data, boxplot.summary = c("AvgRating", "ReleaseDate"))

相关文章
|
设计模式 算法 程序员
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
作为开发者,我们在日常开发过程中,往往会遇到反复修改bug的情况,而且不能一次性把代码写的完美无瑕,其实开发项目是一项复杂而富有挑战性的任务,即使经验丰富的程序员也难以在一次性编写完美无瑕地完成代码,我个人觉得一次性写好代码是不可能完成的事情。虽然在设计之初已经尽力思考全面,并在实际操作中力求精确,但程序员仍然需要花费大量时间和精力来调试和修复Bug。那么本文就来分享程序员需要反复修改Bug的原因,以及在开发中所面临的复杂性与挑战。
382 1
程序员为何需要反复修改Bug?探寻代码编写中的挑战与现实
|
数据挖掘 数据格式
跟着Cell学作图 | 6.时间序列分析(Mfuzz包)
这篇2020年发表在cell上关于新冠的组学文章里面有大量的生信内容。今天带大家复现其中的一个Supplemental Figure:时间序列分析图。
1127 0
跟着Cell学作图 | 6.时间序列分析(Mfuzz包)
|
8月前
|
人工智能
SPO来袭:Prompt工程师90%不存在了?AI自动优化时代开启!
当你点进这个标题时内心是怎样复杂的心情,质疑,鄙夷,或者是惊讶?这也正是我们最初点开这篇论文时的心情。然而, 在完成项目测试后, 我们瘫坐在椅子上, 默默打下了 'Prompt工程师,不存在' 这几个
337 0
|
存储 JavaScript API
Vue3实现图片懒加载及自定义懒加载指令
Vue3实现图片懒加载及自定义懒加载指令
1100 0
|
Linux
支持exfat和ntfs格式的U盘
该文档提供了在Linux系统中支持exFAT和NTFS格式U盘的方法。首先,通过安装EPEL库(需管理员权限)开始,使用`yum -y install epel-release`命令。接着,对于RHEL/CentOS 7,需添加Nux Dextop仓库并安装exfat支持库,命令为`rpm -Uvh
352 0
|
Shell Perl Linux
同源注释工具GeneWise安装和使用
这是一个非常老的软件,距离他不更新至少有10多年了,但是目前还是有很多公司用他进行基因组注释,包括ENSEMBL的注释流程的几个核心部分用到的也是它。 但是他的安装也是异常的麻烦,好在Homebrew的安装说明https://github.
3168 0
|
数据挖掘
R实战 | 环状热图(circos)
R实战 | 环状热图(circos)
620 0
|
传感器
海泰04三相永磁无刷伺服电机can信号控制方法
控制电机的电流环、速度环、位置环
727 2
海泰04三相永磁无刷伺服电机can信号控制方法