R语言UpSet包实现集合可视化示例详解

目录
  • 前言
  • 一、R包及数据
  • 二、upset()函数
    • 1)基本参数
    • 2)queries参数
    • 3)attribute.plots参数
      • 3.1 添加柱形图和散点图
      • 3.2 添加箱线图
      • 3.3 添加密度曲线图

前言

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

一、R包及数据

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

二、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")

3)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(movies, boxplot.summary = c("AvgRating", "ReleaseDate"))

3.3 添加密度曲线图

因默认属性图中没有密度曲线,需要自定义plot函数

#自定义密度曲线
another.plot &lt;- function(data, x, y) {
    data$decades &lt;- round_any(as.integer(unlist(data[y])), 10, ceiling)
    data &lt;- data[which(data$decades &gt;= 1970), ]
    myplot &lt;- (ggplot(data, aes_string(x = x)) + geom_density(aes(fill = factor(decades)),
        alpha = 0.4) + theme(plot.margin = unit(c(0, 0, 0, 0), "cm"), legend.key.size = unit(0.4, "cm")))
}
upset(data, main.bar.color = "black", mb.ratio = c(0.5, 0.5), queries = list(list(query = intersects,
    params = list("Drama"), color = "red", active = F), list(query = intersects,
    params = list("Action", "Drama"), active = T), list(query = intersects,
    params = list("Drama", "Comedy", "Action"), color = "orange", active = T)),
    attribute.plots = list(gridrows = 50, plots = list(list(plot = histogram,
        x = "ReleaseDate", queries = F), list(plot = scatter_plot, x = "ReleaseDate",
        y = "AvgRating", queries = T), list(plot = another.plot, x = "AvgRating",
        y = "ReleaseDate", queries = F)), ncols = 3))

参考

R语言可视化

以上就是R语言UpSet包实现集合可视化示例详解的详细内容,更多关于R语言UpSet包集合可视化的资料请关注我们其它相关文章!

(0)

相关推荐

  • R语言数据可视化绘图Lollipop chart棒棒糖图

    目录 Step1.绘图数据的准备 Step2.绘图数据的读取 Step3.绘图所需package的调用 Step4.因子水平排序 Step5.绘图 今天给大家分享的是Lollipop chart(棒棒糖图)的画法.棒棒糖图的用途跟条形图的用法类似,只是看起来更加美观一些,图表形式更加丰富(数据不够.拿图来凑,啥也不能阻止我优秀 ). 为了跟之前画的柱状图更好的比较,今天画图使用了相同的数据. 作图思路:棒棒糖图实际上是在散点图的基础上增加了辅助线. 不过在作图过程中还是遇到了和之前一样的问题,数

  • R语言模拟疫情传播图RVirusBroadcast展示疫情数据

    目录 前言 效果展示 小结 参考 附录:RVirusBroadcast代码 前言 前几天微博的一个热搜主题是**“计算机仿真程序告诉你为什么现在还没到出门的时候!!!”**,该视频用模拟的疫情数据告诉大家“不要随便出门(宅在家)”对战胜疫情很重要,生动形象,广受好评. 所用的程序叫VirusBroadcast,源码已经公开,是用Java写的.鉴于画图是R语言的优势,所以笔者在读过源码后,写了一个VirusBroadcast程序的R语言版本,暂且叫做RVirusBroadcast.与VirusBr

  • R语言绘制Bubble Matrix气泡矩阵图

    目录 Step1.绘图数据的准备 Step2.绘图数据的读取 Step3.绘图所需package的安装.调用 Step4.绘图 Step5.美化 又是一个好久不见,朋友们你们最近还好吗!最近小仙同学刚经历了人生中的一个重要的里程碑——延毕.在预料之中.又如期而至的两个字,小仙心里也是很复杂,可终究跟“毕业”二字沾了边,就当它是好事啦! 今天要给大家介绍的是气泡矩阵图,要模仿的图形如下.小仙同学一直有一个困惑:什么样的数据应该画什么类型的图,才能精确地展示数据表达出自己的意思?对于气泡矩阵图,小仙

  • R语言数可视化Split violin plot小提琴图绘制方法

    最近小仙同学在好几篇文献里看到了这种小提琴图,暂时就肤浅地认为这是作者为了更好地比较对照组与实验组的差别,所以将同一个基因的小提琴图各画了一半,放在一起.为了跟上可视化的潮流,小仙也来尝试画一下这个没查到正经名字的图. Step1. 绘图数据的准备 首先要把你想要绘图的数据调整成R语言可以识别的格式,建议大家在excel中保存成csv格式.作图数据格式如下: Step2. 绘图数据的读取 data<-read.csv("your file path", header = T) #

  • R语言数据可视化绘图bar chart条形图实现示例

    时光飞逝,岁月如梭,转眼又是一年过去了,本小仙怎么还是一事无成呢! 转念一想,这种事也不是一次两次了,再多一个又何妨,哈哈! 回归正题,今天就给大家介绍下直方图(histogram)的“好兄弟”——条形图(bar chart).假设小仙同学现在要帮一家书店用图形展示2018年最受大家欢迎的书目,数据如下图. 条形图画出来还挺好看,可是跟小仙想象中的可不一样.明明我的数据是按照销量从高到低排列的,为什么画出来却是按照字母顺序排列的呢? 使用了对因子进行排序的函数reorder()之后,就变成了下图

  • R语言UpSet包实现集合可视化示例详解

    目录 前言 一.R包及数据 二.upset()函数 1)基本参数 2)queries参数 3)attribute.plots参数 3.1 添加柱形图和散点图 3.2 添加箱线图 3.3 添加密度曲线图 前言 介绍一个R包UpSetR,专门用来集合可视化,当多集合的韦恩图不容易看的时候,就是它大展身手的时候了. 一.R包及数据 #安装及加载R包 #install.packages("UpSetR") library(UpSetR) #载入数据集 data <- read.csv(&

  • R语言绘制line plot线图示例详解

    目录 Step1.绘图数据的准备 Step2.绘图数据的读取 Step3.绘图所需package的安装.调用 Step4.绘图 最近小仙同学在Nature Cell Biology上看到了这样一张图,很常见的折线图画成这个样子——原来很常见的图标类型也可以“焕发新春”! 今天小仙同学就尝试用R复刻一张类似的折线图. Step1. 绘图数据的准备 首先要把你想要绘图的数据调整成R语言可以识别的格式,建议大家在excel中保存成csv格式.数据的格式如下图:一列表示一种变量,最后一列是每一行的行名.

  • R语言使用cgdsr包获取TCGA数据示例详解

    目录 TCGA数据源 TCGA数据库探索工具 查看任意数据集的样本列表方式 选定数据形式及样本列表后获取感兴趣基因的信息,下载mRNA数据 选定样本列表获取临床信息 综合性获取 下载mRNA数据 获取病例列表的临床数据 从cBioPortal下载点突变信息 从cBioPortal下载拷贝数变异数据 把拷贝数及点突变信息结合画热图 TCGA数据源 众所周知,TCGA数据库是目前最综合全面的癌症病人相关组学数据库,包括的测序数据有: DNA Sequencing miRNA Sequencing P

  • Go语言中的字符串处理方法示例详解

    1 概述 字符串,string,一串固定长度的字符连接起来的字符集合.Go语言的字符串是使用UTF-8编码的.UTF-8是Unicode的实现方式之一. Go语言原生支持字符串.使用双引号("")或反引号(``)定义. 双引号:"", 用于单行字符串. 反引号:``,用于定义多行字符串,内部会原样解析. 示例: // 单行 "心有猛虎,细嗅蔷薇" // 多行 ` 大风歌 大风起兮云飞扬. 威加海内兮归故乡. 安得猛士兮守四方! ` 字符串支持转义

  • R语言关于随机森林算法的知识点详解

    在随机森林方法中,创建大量的决策树. 每个观察被馈入每个决策树. 每个观察的最常见的结果被用作最终输出. 新的观察结果被馈入所有的树并且对每个分类模型取多数投票. 对构建树时未使用的情况进行错误估计. 这称为OOB(袋外)误差估计,其被提及为百分比. R语言包"randomForest"用于创建随机森林. 安装R包 在R语言控制台中使用以下命令安装软件包. 您还必须安装相关软件包(如果有). install.packages("randomForest") 包&qu

  • R语言对数据库进行操作的实例详解

    数据是关系数据库系统以规范化格式存储. 因此,要进行统计计算,我们将需要非常先进和复杂的Sql查询. 但R语言可以轻松地连接到许多关系数据库,如MySql,Oracle,Sql服务器等,并从它们获取记录作为数据框. 一旦数据在R语言环境中可用,它就变成正常的R语言数据集,并且可以使用所有强大的包和函数来操作或分析. 在本教程中,我们将使用MySql作为连接到R语言的参考数据库. RMySQL包 R语言有一个名为"RMySQL"的内置包,它提供与MySql数据库之间的本地连接. 您可以使

  • R语言学习ggplot2绘制统计图形包全面详解

    目录 一.序 二.ggplot2是什么? 三.ggplot2能画出什么样的图? 四.组装机器 五.设计图纸 六.机器的零件 1. 零件--散点图 1) 变换颜色 2) 拟合曲线 3) 变换大小 4) 修改透明度 5) 分层 6) 改中文 2. 零件--直方图与条形图 1) 直方图 2) 润色 3) 条形图 3. 零件--饼图 4. 零件--箱线图 5. 零件--小提琴图 6. 零件打磨 7. 超级变变变 8. 其他常用零件 七.实践出真知 八.学习资源 九.参考资料 一.序 作为一枚统计专业的学

  • Go语言基础函数基本用法及示例详解

    目录 概述 语法 函数定义 一.函数参数 无参数无返回 有参数有返回 函数值传递 函数引用传递 可变参数列表 无默认参数 函数作为参数 二.返回值 多个返回值 跳过返回值 匿名函数 匿名函数可以赋值给一个变量 为函数类型添加方法 总结 示例 概述 函数是基本的代码块,用于执行一个任务 语法 函数定义 func 函数名称( 参数列表] ) (返回值列表]){ 执行语句 } 一.函数参数 无参数无返回 func add() 有参数有返回 func add(a, b int) int 函数值传递 fu

  • Go语言基础go fmt命令使用示例详解

    go fmt 命令主要是用来帮你格式化所写好的代码文件[很多第三方集成软件都是使用了go fmt命令] 一.使用: go fmt <文件名>.go 使用go fmt命令,更多时候是用gofmt,而且需要参数 -w,否则格式化结果不会写入文件.gofmt -w src,可以格式化整个项目. 二.参数介绍 -l 显示那些需要格式化的文件 -w 把改写后的内容直接写入到文件中,而不是作为结果打印到标准输出. -r 添加形如"a[b:len(a)] -> a[b:]"的重写规

  • Go语言基础go install命令使用示例详解

    目录 go install 一.使用 二.包名和目录名的关系 三.注意 go install 编译并安装代码包,对于库,会生成目标库文件,并且放置到GOPATH/pgk目录下. 对于可执文件,会生成目标可执行文件,并且放置到GOPATH/bin目录下 一.使用 命令 描述 go install lib 编译安装package lib,会为main包在bin下生成可执行exe文件 go install lib2 lib/util 同时编译安装lib2和lib/util两个package. 二.包名

随机推荐