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

 更新时间:2022年06月24日 10:04:00   作者:生信补给站  
这篇文章主要为大家介绍了R语言UpSet包实现集合可视化示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

前言

介绍一个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包集合可视化的资料请关注得牛网其它相关文章!

相关文章

  • R语言 实现手动设置xy轴刻度的操作

    R语言 实现手动设置xy轴刻度的操作

    这篇文章主要介绍了R语言 实现手动设置xy轴刻度的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 浅析R语言中map(映射)与reduce(规约)

    浅析R语言中map(映射)与reduce(规约)

    大家在R语言数据处理中非常常见map(映射)与reduce(规约)操作,map表示映射,可以在一个或多个列表/向量的每个位置上应用相同函数进行计算而reduce函数表示规约,计算向量中相邻的两个元素,本文给大家介绍R语言map与reduce的相关知识,感兴趣的朋友一起看看吧
    2021-05-05
  • R语言关联规则深入详解

    R语言关联规则深入详解

    这篇文章主要介绍了R语言关联规则深入详解,文中内容讲解的很透彻,有感兴趣的同学可以学习下
    2021-03-03
  • 解决R语言中install_github中无法安装遇到的问题

    解决R语言中install_github中无法安装遇到的问题

    这篇文章主要介绍了解决R语言中install_github中无法安装遇到的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言数据重塑知识点总结

    R语言数据重塑知识点总结

    在本篇文章里小编给大家整理的是一篇关于R语言数据重塑的相关知识点内容,有兴趣的朋友们可以跟着学习下。
    2021-03-03
  • R语言 实现多行注释的方式

    R语言 实现多行注释的方式

    这篇文章主要介绍了R语言 实现多行注释的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言中igraph包的用法(邻接矩阵)

    R语言中igraph包的用法(邻接矩阵)

    这篇文章主要介绍了R语言中igraph包的用法(邻接矩阵),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • R语言基本对象类型知识点详解

    R语言基本对象类型知识点详解

    在本篇文章里小编给大家整理了一篇关于R语言基本对象类型知识点详解内容,有兴趣的朋友们学习下。
    2021-03-03
  • R语言绘制维恩图ggvenn示例详解

    R语言绘制维恩图ggvenn示例详解

    这篇文章主要为大家介绍了R语言绘制维恩图ggvenn示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-06-06
  • R语言与格式,日期格式,格式转化的操作

    R语言与格式,日期格式,格式转化的操作

    这篇文章主要介绍了R语言与格式,日期格式,格式转化的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论