掌握数据可视化利器:Upset图(集合图)绘制方法详解
创作时间:
作者:
@小白创作中心
掌握数据可视化利器:Upset图(集合图)绘制方法详解
引用
1
来源
1.
https://college.mimazi.net/cms/article-174.html
在数据分析和可视化中,经常需要对某几组样本中共有或特有的基因、OTU或微生物进行可视化。通常可以选择维恩图进行可视化,但当分组信息过多时,维恩图的展示能力及可读性则有所下降。因此,推荐使用维恩图的升级版本——集合图(Upset plot)。
集合图的主要组成部分
集合图主要由三部分组成:
- 最上面的y轴以柱状图形式展示,用于表示交集大小
- 下面左侧的x轴以条形图形式展示,表示每一个集合的大小
- 下面右侧的矩阵点表明集合之间的交集情况。例如,若两个样本间有相同的元素,则使用连线将两个样本相连;同样地,若多个样本间存在连线,那这部分即为这几个样本内的共有元素。
如何使用R语言绘制集合图
示例数据(data1.csv)
数据为丰度/表达量矩阵,表格需要带表头和列名,每一列为样本名,每一行为各种指标数据名,如OTU、基因ID、代谢物名称等。
集合图绘制示例
# 读取本地数据并查看
dat <- read.csv("data1.csv", header = TRUE, row.names = 1, check.names = F)
head(dat)
# 加载R包
# install.packages("UpSetR")
library(UpSetR)
# 将丰度矩阵中的非0值转换为1
dat[dat > 0] <- 1
# 集合图绘制
# 基础绘图
upset(dat)
# 集合图美化
upset(dat,
nsets = 20, # 可视化数据集数量
nintersects = 60, # 显示前多少个交集
main.bar.color = 'blue', # 柱状图颜色
matrix.color = "black", # 集合点的颜色
sets.bar.color = "red", # 条形图条形的颜色
set_size.show = F, # 是否在条形图上显示集合大小
mb.ratio = c(0.5, 0.5) # 矩阵图与主柱图之比
)
# 将条形图颜色设置为不同的颜色
# install.packages("RColorBrewer")
library(RColorBrewer)
upset(dat,
nsets = 20, # 可视化数据集数量
nintersects = 60, # 显示前多少个交集
main.bar.color = 'blue', # 柱状图颜色
matrix.color = "black", # 集合点的颜色
sets.bar.color = c(brewer.pal(10, "Set3"), brewer.pal(10, "Paired")), # 条形图条形的颜色
set_size.show = F, # 是否在条形图上显示集合大小
mb.ratio = c(0.5, 0.5) # 矩阵图与主柱图之比
)
# 高亮显示特定交集
# queries参数用于指定要显示的特定组的交集,每个元素都包含一个query(查询类型)和params(查询参数)字段。在这个例子中,有两个查询:第一个查询指定"S1"和"S8"集合的交集,将其显示为红色;第二个查询指定"S15"集合,将其显示为绿色。color字段用于设置交集的颜色,active字段用于指定是否激活该查询
upset(dat, nsets = 20, mb.ratio = c(0.5, 0.5),
# 设置自己想要展示的特定组的交集
queries = list(list(query = intersects, params = list("S1", "S8"),
color = "red", active = T),
list(query = intersects, params = list("S15"),
color = "green", active = T))
)
热门推荐
一分钱一分货观念过时没?如何判断商品性价比高低?
两厢车和SUV的区别
桑的由来和含义
同是蒙古族分隔百年,内蒙古如何看待蒙古国,是亲戚还是外国人?
税务大数据分析解决方案
你知道如何控制微波烘干机能耗吗
通勤日文:掌握「通う」的秘訣,解鎖日語日常溝通
从水开始:泰勒斯与古希腊哲学的曙光
如何根据自身需求配置保险?所选保险的风险防范效果如何衡量?
肌肉拉伤如何护理?专业医生为您详细解答
防治过敏性疾病,这些相关知识请您查收
身上经常发痒,可能是糖尿病的信号?如有7种表现,需及时就医
海关法律法规培训:掌握规矩,顺利通过海关审查
杜甫《日暮》:风月自清夜,江山非故园
如何分析黄金价格趋势图的情况?这的趋势能反映出什么问题?
阜阳周边自驾游的精彩之旅
从小爱在外疯玩的孩子,4项能力比较突出,越大越幸福、越易成功
婴幼儿脑潜能开发:给孩子一个更聪明的未来
化疗后多久能恢复正常
枣糕究竟属于哪一类糕点?
李煜《浪淘沙令·帘外雨潺潺》:从帝王到囚徒的人生巨变
中科大少年班录取名单公示,上海12岁“小孩哥”在列
上海大观园一日游攻略,含交通线路、游玩线路、景点介绍
再谈嵌入式实时操作系统
Word文档正文字体选择指南:从标准到设置
怎样走路能减肥
社会保障卡坏了去哪里补办?
甲亢患者如何正确饮食?这份攻略快收下!
定期安全清理C盘垃圾文件的有效方法与注意事项
国家能源集团构建绿色氢能产业体系