[R] How to change a venn command into a named object that can be plotted like a lattice object

George Chen glchen at stanford.edu
Tue Feb 23 03:04:30 CET 2010


Hello,

I am plotting data as a venn diagram but would like to be able to control how it is plotted like a lattice object.
Right now, it plots right away.  I would like to name it and then plot at will.
I thought to convert the whole thing to a PostScript file then get it back into R via grImport, but surely (please!) there must be a less roundabout way to do this.

Any help is appreciated.

Here is my code:

# Wrapper function to draw Venn diagram
Venn2 <- function(set1, set2, names, title,...){
  stopifnot( length(names) == 2)
  # Form universe as union of both sets
  universe <- sort( unique( c(set1, set2) ) )
  Counts <- matrix(0, nrow=length(universe), ncol=2)
  colnames(Counts) <- names
  for (i in 1:length(universe))  {
    Counts[i,1] <- universe[i] %in% set1
    Counts[i,2] <- universe[i] %in% set2
  }
  vennDiagram( vennCounts(Counts),main=title,... )
}

# How I draw the Venn diagram
Venn2(cPostArrayHitsNames,cPreArrayHitsNames,names=c("Post","Pre"),title=PatientID)

Unfortunately something like this doesn't work:
VennPlot<-Venn2(cPostArrayHitsNames,cPreArrayHitsNames,names=c("Post","Pre"),title=PatientID)

Apologies for the imprecise terminology.

Thanks.

GLC



More information about the R-help mailing list