绘制韦恩图

目录

韦恩图与upset差异

Vennerable包

基础使用list

dataframe输入格式


主要源于跟着Cell学作图 | 12.韦恩图(Vennerable包)-CSDN博客,增加了相关数据转换的处理。

韦恩图与upset差异

upset图:多个集合交集可视_upset图r语言代码自定义交集顺序-CSDN博客

复制代码
rm(list = ls()) 
#构建模型数据
group1 <- rep(c("1","0","1","0","1"), 40)
group2 <- rep(c("1","1","0","1"), 50)
group3 <- rep(c("1","0"), 100)
group4 <- rep(c("0","1","0","1","1","1","1","0","1","1"), 20)
group5 <- rep(c("1","0","1","1","1"), 40)
data <- cbind(group1,group2,group3,group4,group5)
rownames(data) <- c(1:nrow(data))
 
library(UpSetR)
library(stringr)
library(dplyr)
data1 <- apply(data,2,as.numeric) #转化为数值型
rownames(data1)<-rownames(data)
data1<-as.data.frame(data1)
 
upset(data1, 
      sets = c("group1","group2","group3","group4","group5"), 
      sets.bar.color = "red",
      order.by = "freq", 
      empty.intersections = "on")

韦恩图使用原始数据即可自动取交集,upset需要将交集转换为矩阵,然后使用0,1表示进行绘图


Vennerable包
基础使用list
复制代码
#韦恩图#
rm(list = ls()) 
BiocManager::install("RBGL") #安装依赖包
install.packages("Vennerable", repos="http://R-Forge.R-project.org") #安装Vennerable包
library(Vennerable) #加载
data(StemCell) #使用内置的数据集
str(StemCell)
Vstem <- Venn(StemCell)
Vstem3<-Vstem[, c("OCT4", "SOX2", "NANOG")]
plot(Vstem3, doWeights = TRUE)

数据格式:这里的input是list格式的数据


dataframe输入格式

常用的是dataframe格式文件,输入需要进行list转换

R语言list与dataframe相互转换(常用)_r语言list转dataframe-CSDN博客

复制代码
##这里将数据集转换为dataframe后再转回list进行测试#
dat <- as.data.frame(t(sapply(StemCell, "[", i = 1:max(sapply(StemCell, length)))))



##注意行名:转换时将行名转换为list名
list_from_df <- as.list(as.data.frame(t(dat))) ##需要转置后才能将行名转换为为list的名

# 使用na.omit()函数删除NA值
list_no_na <- lapply(list_from_df, na.omit)
Vstem1 <- Venn(list_no_na)
Vstem4<-Vstem1[, c("OCT4", "SOX2", "NANOG")]
p2 <- plot(Vstem4, doWeights = TRUE)
p2 

将含有NA值的dataframe转换为list进行处理

参考:跟着Cell学作图 | 12.韦恩图(Vennerable包)-CSDN博客

R绘图|韦恩图的常见绘制方法 - 知乎 (zhihu.com)

相关推荐
源猿人2 天前
企业级文件浏览系统的Vue实现:架构设计与最佳实践
前端·javascript·数据可视化
路由侠内网穿透3 天前
本地部署 GPS 跟踪系统 Traccar 并实现外部访问
运维·服务器·网络·windows·tcp/ip
研华嵌入式3 天前
如何在高通跃龙QCS6490 Arm架构上使用Windows 11 IoT企业版?
arm开发·windows·嵌入式硬件
CodeCraft Studio3 天前
【案例分享】TeeChart 助力 Softdrill 提升油气钻井数据可视化能力
信息可视化·数据可视化·teechart·油气钻井·石油勘探数据·测井数据
带娃的IT创业者3 天前
Windows 平台上基于 MCP 构建“文心一言+彩云天气”服务实战
人工智能·windows·文心一言·mcp
csdn_aspnet3 天前
Windows Node.js 安装及环境配置详细教程
windows·node.js
摇滚侠3 天前
java语言中,list<String>转成字符串,逗号分割;List<Integer>转字符串,逗号分割
java·windows·list
Source.Liu3 天前
【Pywinauto库】12.2 pywinauto.element_info 后端内部实施模块
windows·python·自动化
Source.Liu3 天前
【Pywinauto库】12.1 pywinauto.backend 后端内部实施模块
开发语言·windows·python·自动化
lssjzmn3 天前
基于Spring Boot与Micrometer的系统参数监控指南
java·spring boot·数据可视化