首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >R|UpSet-集合可视化

R|UpSet-集合可视化

作者头像
生信补给站
发布于 2020-08-06 02:48:35
发布于 2020-08-06 02:48:35
1.4K00
代码可运行
举报
文章被收录于专栏:生信补给站生信补给站
运行总次数:0
代码可运行

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

一、R包及数据

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

二、upset()函数

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

1)基本参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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在条形图顶端显示三角形;

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 添加柱形图和散点图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 添加箱线图

每次最多添加两个箱线图

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
upset(movies, boxplot.summary = c("AvgRating", "ReleaseDate"))

3.3 添加密度曲线图

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#自定义密度曲线
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")))
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-04,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信补给站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
UpSet|多集合可视化,韦恩图?upSet!
介绍一个R包UpSetR,专门用来集合可视化,当多集合的韦恩图不容易看的时候,就是它大展身手的时候了。
生信补给站
2021/04/13
2.2K0
UpSet|多集合可视化,韦恩图?upSet!
可视化—Upset图绘制
我们在可视化集合之间关系的时候,常常会绘制韦恩图。但随着集合的增多,韦恩图显示的关系会越来越复杂,很难一眼看出其中的信息。这种情况下我们需要使用 UpSetR 包来反映集合间的关系。
sheldor没耳朵
2024/11/01
4570
可视化—Upset图绘制
R语言实现高级的韦恩图可视化
韦恩图大家应该都不陌生,主要用来展示不同事物或者组之间的数学或逻辑关系,主要用于集合的运算结果展示。今天给大家介绍一个在R语言中更加高级的展示形式,实现此功能的R包是UpSetR。首先看下包的安装:
一粒沙
2021/10/11
1.4K0
迄今为止最强大的upset plot R包,没有之一!
upset plot我们已经介绍了多种画法,包括最流行的UpsetR,还介绍了使用complexHeatmap包画upset plot,以及ggupset包。这些包各有各的特色,基本用法差不多,在一些组合图形方面各有不同,大家可以翻看之前的文章。
医学和生信笔记
2022/11/15
6.8K0
迄今为止最强大的upset plot R包,没有之一!
手把手教你学习可视化武器--upsetR
当我们的数据分组越来越多的时候,韦恩图解读效果不再那么一目了然了,这时候我们需要利用upsetR包,对数据进行重新操盘。
百味科研芝士
2019/09/25
2.4K0
手把手教你学习可视化武器--upsetR
高级的交集可视化工具--ComplexUpset!
对于集合的可视化,我们第一反应想到的往往是韦恩图,韦恩图本身在集合数目较少的情况下是非常适用的,但是一旦集合数目较多,并且想要展示的数据维度复杂,仅仅通过韦恩图去可视化是不能完全展示数据内容的。
作图丫
2022/03/29
1.7K0
高级的交集可视化工具--ComplexUpset!
跟着nature communications学绘图(12) ggplot2注释韦恩点图
❝本节来介绍如何绘图韦恩点图及对其进行注释,图表主要使用「ggplot2」,「UpSetR」,「ggplotify」等包来实现,此图我想介绍的重点在于图形格式的转换及拼图下面来进行具体介绍, A highly conserved core bacterial microbiota with nitrogen-fixation capacity inhabits the xylem sap in maize plants ❞ library(tidyverse) library(UpSetR) library
R语言数据分析指南
2022/09/21
6380
跟着nature communications学绘图(12) ggplot2注释韦恩点图
最强大的upset plot包之二
前面我们已经介绍了迄今为止最强大的upsetplot包的部分内容,今天继续介绍剩下的功能,这个包绝对是目前画upset plot的最强大的R包,没有之一!
医学和生信笔记
2022/11/15
1.5K0
最强大的upset plot包之二
跟着Nature Communications学作图:R语言UpSetR画图展示不同组数据之间的交集
A highly conserved core bacterial microbiota with nitrogen-fixation capacity inhabits the xylem sap in maize plants
用户7010445
2023/01/06
6990
跟着Nature Communications学作图:R语言UpSetR画图展示不同组数据之间的交集
【可视化大屏】用Python开发「淄博烧烤」微博热评舆情分析大屏
自从2023.3月以来,"淄博烧烤"现象持续占领热搜流量,体现了后疫情时代众多网友对人间烟火气的美好向往,本现象级事件存在一定的数据分析实践意义。
无双0516
2025/03/19
2110
【可视化大屏】用Python开发「淄博烧烤」微博热评舆情分析大屏
韦恩图进阶!ggupset版upset plot
Try to learn everything about something!
医学和生信笔记
2022/11/14
1.8K0
文章MSM_metagenomics(九):偏差图、UpSet图、棒棒糖图
在本教程中,我们将使用R包ggpubr中的ggdotchart 函数来可视化与MSM个体中性伴侣数量相关的LefSe生物标志物: biomarkers: ./data/npartners_lefse_deviation_plot.tsv。
生信学习者
2024/06/18
3510
文章MSM_metagenomics(九):偏差图、UpSet图、棒棒糖图
全网最全的R语言基础图形合集
直方图是一种对数据分布情况进行可视化的图形,它是二维统计图表,对应两个坐标分别是统计样本以及该样本对应的某个属性如频率等度量。
生信学习者
2024/06/12
1480
全网最全的R语言基础图形合集
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
针对TOP250排行榜的数据,开发一套可视化数据大屏系统,展示各维度数据分析结果。
马哥python说
2025/04/27
6580
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
Python多维数据可视化详解
数据聚合、汇总和可视化是支撑数据分析领域的三大支柱。长久以来,数据可视化都是一个强有力的工具,被业界广泛使用,却受限于 2 维。在本文中,作者将探索一些有效的多维数据可视化策略(范围从 1 维到 6 维)。
用户8949263
2022/04/08
1.3K0
Python多维数据可视化详解
深度好文 |Matplotlib 可视化最有价值的 50 个图表
本文总结了 Matplotlib 以及 Seaborn 用的最多的50个图形,掌握这些图形的绘制,对于数据分析的可视化有莫大的作用,强烈推荐大家阅读后续内容。 如果觉得内容不错,欢迎分享到您的朋友圈。 Tips: (1)本文原文部分代码有不准确的地方,已进行修改; (2)所有正确的源代码,我已整合到 jupyter notebook 文件中,可以在公众号『Python数据之道』后台回复 “matplotlib”,可获得本文源代码; (3)运行本文代码,除了安装 matplotlib 和 seaborn 可视化库外,还需要安装其他的一些辅助可视化库,已在代码部分作标注,具体内容请查看下面文章内容。
数据森麟
2019/09/29
1.6K0
深度好文 |Matplotlib 可视化最有价值的 50 个图表
ggstatsplot | 一个满足你日常统计需求的高颜值R包(一)
上面这种方法虽然很方便,但我们有可能想在不同的亚组中用不同的统计方法,这个时候可以利用purr包进行批量绘制
生信漫卷
2022/10/14
6460
Python|Plotly数据可视化(代码+应用场景)
数据可视化作为数据分析最直接的结果呈现方式,了解其制作方式和应用场景是很有必要的,本文来了解一下各个图标的应用场景及代码实现。
数据山谷
2022/05/31
3.5K0
Python|Plotly数据可视化(代码+应用场景)
R语言之可视化⑦easyGgplot2散点图目录
ggplot2.stripchart是一个易于使用的函数(来自easyGgplot2包),使用ggplot2绘图系统和R软件生成条带图。 条形图也被称为一维散点图(或点图)。 当样本量较小时,这些图比较适用于箱型图。
用户1359560
2018/12/12
8860
Python 数据竞赛常用 | 可视化数据集缺失情况
无论是打比赛还是在实际工程项目中,都会遇到数据缺失的情况,如果数据集较小,还能在 Excel 或者其他可视化软件大致看一下导致数据缺失的原因。但当数据集较大时,手工查看每个变量的缺失值是非常麻烦的一件事情。
叶庭云
2022/05/09
3810
Python 数据竞赛常用 | 可视化数据集缺失情况
推荐阅读
相关推荐
UpSet|多集合可视化,韦恩图?upSet!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验