Snippets

Dénes Türei Venn matrix in R

Created by Dénes Türei

require(colorfulVennPlot)
require(broman)

a <- read.table("results/sources-venn-data.csv",sep="\t",header=TRUE)

cairo_pdf(filename="databases-venn.pdf",
    onefile=FALSE,width=24,height=24,
    pointsize=12,family="DINPro")
        d = ceiling(sqrt(dim(a)[1]))
        par(mfrow=c(18,18))
        for(i in seq(1,dim(a)[1])){
            draw.pairwise.venn(a[i,4]+a[i,6],a[i,5]+a[i,6],a[i,6],c(a[i,2],a[i,3]),fill=c("#2166AC","#B2182B"))
        }
dev.off()

cairo_pdf(filename="databases-venn2.pdf",
    onefile=FALSE,width=32,height=32,
    pointsize=12,family="DINPro")
        d = ceiling(sqrt(dim(a)[1]))
        par(mfrow=c(21,21))
        o <- 0
        s <- levels(as.factor(a[,2]))
        for(j in s){
            for(k in s){
                row <- a[a[,2]==j & a[,3]==k,]
                row <- as.matrix(row)
                names <- row[2:3]
                values <- as.numeric(row[4:6])
                if(row[2] == row[3]){
                    plot.new()
                }else{
                    venn(setA=values[1]+values[3],setB=values[2]+values[3],both=values[3],labels=c(
                        as.character(paste(names[1],"\n(",values[1]+values[3],")",sep="")),
                        as.character(paste(" \n \n",names[2],"\n(",values[2]+values[3],")",sep=""))))
                }
                #venn.plot <- draw.pairwise.venn(a[i,4]+a[i,6],a[i,5]+a[i,6],a[i,6],c(a[i,2],a[i,3]),fill=c("#2166AC","#B2182B"))
                #grid.draw(venn.plot)
                #venneuler(c(eval(parse(text=paste(a[i,2])))=a[i,4],eval(parse(text=paste(a[i,3])))=a[i,5],eval(parse(text=paste(a[i,2],'&',a[i,3],sep="")))=a[i,6]))
                #venn <- venneuler(c(paste(a[i,2])=a[i,4],paste(a[i,3])=a[i,5],paste(a[i,2],'&',a[i,3],sep="")=a[i,6]))
                #plotVenn2d(c(a[i,4],a[i,5],a[i,6]),labels=c(a[i,2],a[i,3]),Colors=c("#2166AC","#B2182B","#FFFFFF"))
                o <- o + 1
            }
        }
dev.off()

Comments (0)

HTTPS SSH

You can clone a snippet to your computer for local editing. Learn more.