2014-10-31 77 views
1

我有一个数据集,需要将其转化为维恩图。数据是这样的:将二进制表示法转换成维恩图

con1 con2 con3 con4 counts 
0.0 0.0 0.0 0.0 4165 
0.0 0.0 0.0 1.0 118107 
0.0 0.0 1.0 0.0 428978 
0.0 0.0 1.0 1.0 32045 
0.0 1.0 0.0 0.0 84489 
0.0 1.0 0.0 1.0 2199 
0.0 1.0 1.0 0.0 67245 
0.0 1.0 1.0 1.0 42977 
1.0 0.0 0.0 0.0 780948 
1.0 0.0 0.0 1.0 40406 
1.0 0.0 1.0 0.0 28988 
1.0 0.0 1.0 1.0 3559 
1.0 1.0 0.0 0.0 9802772 
1.0 1.0 0.0 1.0 8890 
1.0 1.0 1.0 0.0 6577 
1.0 1.0 1.0 1.0 84120 

有没有[R包可以把这个格式转换成维恩图...

我做了什么:

我已经看过了文氏图方案,但如何将它转换成维恩图需要您在纸上已经有维恩图,即需要手动将每个区域的计数填充到该函数中。

我在找的是一个函数,它可以将这个二进制表示转换为上面显示的维恩图。

谢谢!

回答

2

使用VennCountsvennDiagram funcrions从limma包 - 截至link

Limma显示不CRAN的一部分,你可以键入这两个命令来安装LIMMA:

source("http://bioconductor.org/biocLite.R") 
biocLite("limma") 

这里是如何您加载数据并绘制维恩图:

library("limma") 

names(dat)[5] <- "Counts" 
dat <- as.matrix(dat) 

class(dat) <- "VennCounts" 
vennDiagram(dat) 

Data shou ld是名为Counts的类"VennCounts"的矩阵。


数据

dat <- structure(list(
    con1 = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1), 
    con2 = c(0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1), 
    con3 = c(0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1), 
    con4 = c(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1), 
    counts = c(4165L, 118107L, 428978L, 32045L, 84489L, 2199L, 67245L, 42977L, 780948L, 40406L, 28988L, 3559L, 9802772L, 8890L, 6577L, 84120L) 
    ), 
    .Names = c("con1", "con2", "con3", "con4", "counts"), 
    class = "data.frame", row.names = c(NA, -16L) 
)