首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

R语言之可视化④点韦恩图upsetR目录正文

正文

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

原理比较简单,做法大概分为两种,第一种是定义数据集后,画图自动取交集。第二种做法是先取交集,然后画图。绘制韦恩图的目的主要是查看数据集之间的异同。

第一种:定义数据集后直接画图取交集

代码语言:javascript
复制
library(UpSetR)
library(dplyr)
library(tidyr)
rm(list=ls())
diff <- read.csv("diffSig_ttest.csv",header = T,row.names = 1)

加载包和所使用的数据。

代码语言:javascript
复制
AA <- subset(diff, splice_type=="AA")
AD  <- subset(diff, splice_type=="AD")
AP <- subset(diff, splice_type=="AP")
AT <- subset(diff, splice_type=="AT")

取出准备取交集的数据集们

代码语言:javascript
复制
#fromList
listinput <- list(AD = AD$symbol,
                  AP = AP$symbol,
                  AA = AA$symbol,
                  AT = AT$symbol)


library(UpSetR)
# pdf(file='upset.pdf',height = 8,width = 8)
p <- upset(fromList(listinput),nsets = 4, order.by = "freq")
# dev.off()

绘制图片

第二种:取交集后在画图

代码语言:javascript
复制
setwd("E:\\Rwork")
library(UpSetR)
require(ggplot2);
require(plyr);
require(gridExtra); 
require(grid);
input <- c(
  'cancer1'=  1578,
  'cancer2' =  1284,
  'cancer3' = 2488,
  'cancer1&cancer2'  =205,
  'cancer1&cancer3'  = 828,
  'cancer2&cancer3'  =589,
  'cancer1&cancer2&cancer3'   =120
)

data <- fromExpression(input)
p1 <- upset(data, nsets = 9, 
            sets = c('cancer1',
                     'cancer2' ,
                     'cancer3'),
            keep.order = TRUE,
            # number.angles = 30, 
            point.size = 5, 
            line.size = 1.3, 
            mainbar.y.label = "IntersectionSize", 
            sets.x.label = "",
            mb.ratio = c(0.60, 0.40),
            text.scale = c(4, 4, 0.5, 0.5,3, 4))

p1
下一篇
举报
领券