分享

R中简单绘制韦恩图

 微笑如酒 2017-01-16
2016-09-14 

韦恩图,也称为文氏图,用于显示元素集合重叠区域的图示。下面我们简单介绍几种绘制韦恩图的方法,至于其中参数释义,这里不再做解释。

limma包

#安装limma包
#source('
http://www./biocLite.R')
#biocLite('limma')
Y <->
Y[1:10,3:4] <->
Y[1:20,5:6] <->
design <->
fit <->
results <->
a <->
vennDiagram(a)
vennDiagram(results,
   include=c('up', 'down'),
   counts.col=c('red', 'blue'),
   circle.col = c('red', 'blue', 'green3'))

gplots包

library(gplots)

oneName <- function()paste(sample(letters,5,replace="">

geneNames <- replicate(1000,="">

GroupA <- sample(genenames,="" 400,="" replace="">

GroupB <- sample(genenames,="" 750,="" replace="">

GroupC <- sample(genenames,="" 250,="" replace="">

GroupD <- sample(genenames,="" 300,="" replace="">

input  <>

venn(input,showSetLogicLabel = F)


vennerler包

library(venneuler)

m <>

A=c(1.5, 0.2, 0.4, 0, 0),

B=c(0  , 0.2, 0  , 1, 0),

C=c(0  , 0  , 0.3, 0, 1)))

plot(venneuler(m))

VennDiagram包

library(VennDiagram)

venn.plot <->

  area1  = 111,

  area2  = 82,

  area3  = 96,

  area4  = 121,

  n12 = 30,

  n13 = 37,

  n14 = 52,

  n23 = 27,

  n24 = 36,

  n34 = 45,

  n123 = 13,

  n124 = 17,

  n134 = 25,

  n234 =19,

  n1234 = 9,

  category = c('a', 'b', 'c', 'd'), fontface='plain',fontfamily = 'serif',

  fill = c('orange', 'red', 'green', 'blue'),

  cat.col = c('orange', 'red', 'green', 'blue'),col=NA,margin=0.1,

  lty =1,cex =1,cat.cex =1,alpha = 0.5)

最后一副图形最有意思,针对其中参数我们简单描述一下吧。

首先你要提供需要绘制韦恩图的数据集(废话),假设有四个,就命名为area1、areas2、areas3、area4。然后四个数据集两两共有的,三个共有的,四个共有的都需要给出。

category:数据集的字符串名字

lwd:韦恩图中圆形图的线宽、

lty:线条类型

col:颜色

fill:每个数据集的填充色

cat.col:数据集字符串颜色

fontface:字体类型(粗体、斜体等)

fontfamily:字体族

……

如何获取venn diagram中的基因列表呢?

我们简单展示一下

主要操作流程

symbols <- list(a="sample(letters," 10),="" b="sample(letters," 5),="" c="sample(letters,">

symbols.all <->

symbols.mat <- matrix(0,="" nrow="length(symbols.all)," ncol="length(symbols)," dimnames="list(genes=symbols.all," groups="">

for(i in 1:length(symbols)) symbols.mat[symbols[[i]], i] <->

head(symbols.mat)

library(UpSetR)

upset(as.data.frame(symbols.mat))

symbols.venn <- split(rownames(symbols.mat),="" apply(symbols.mat,="" 1,="" paste,="" collapse=''>

names(symbols.venn)

names(symbols.venn) <- sapply(names(symbols.venn),="" function(.ele)="" paste(colnames(symbols.mat)[as.logical(as.numeric(strsplit(.ele,="" '')[[1]]))],="" collapse='__'>

symbols.venn

结果文件

> symbols.venn

$C

[1] 'b' 'e' 'l'

$B

[1] 'g' 'n' 'p' 'z'

$A

[1] 'c' 'd' 'u' 'x'

$A__C

[1] 'f' 'i' 'q' 's' 'y'

$A__B

[1] 'r'

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多