R|UpSet-集合可视化
时间:2022-07-22
本文章向大家介绍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 <- function(data, x, y) {
data$decades <- round_any(as.integer(unlist(data[y])), 10, ceiling)
data <- data[which(data$decades >= 1970), ]
myplot <- (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))
三、参考资料
hms-dbmi/UpSetR
Index of /web/packages/UpSetR/vignettes
- 移除 WordPress 后台“外观-主题” 管理功能
- 移除 WordPress 后台插件管理的“编辑”与“停用”功能
- 区域设置 ID (LCID) 表
- jquery 表单事件
- Jexus以.NET(Phalanger)方式支持PHP的网站
- jquery鼠标事件
- Jexus 负载均衡
- 用.NET Framework 2.0创建 Form设计器[翻译]
- jquery事件绑定
- Fontello:免费Web-font 图标大集合(font-face 图标集)
- 通过 wp-config.php 禁止安装、升级或编辑WordPress 主题与插件
- 利用VS2005中的Code Snippets提高开发效率
- 用schemaSpy制作数据库文档
- WordPress 投票插件Post Ratings,可在谷歌搜索显示星级投票(附中文包下载)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Array - 376. Wiggle Subsequence
- Array - 283. Move Zeroes
- Array - 88. Merge Sorted Array
- Array - 228. Summary Ranges
- Array - 152. Maximum Product Subarray
- Focal Loss和它背后的男人RetinaNet
- Array - 53. Maximum Subarray
- Array - 295. Find Median from Data Stream
- Array - 239. Sliding Window Maximum
- Array - 164. Maximum Gap
- Array - 128. Longest Consecutive Sequence
- String - 13. Roman to Integer
- String - 171. Excel Sheet Column Number
- String - 168. Excel Sheet Column Title
- String - 316. Remove Duplicate Letters