2014-04-10 3 views
6

Vorrei mettere insieme questi tre diagrammi di Venn. Così quando li stampo, appaiono nella stessa paginaCome stampare tre diagrammi di Venn nella stessa finestra

library(VennDiagram) 
df1 <- data.frame(G1=sample(1:100, 10), G2=sample(1:100, 10), 
        G3=sample(1:100, 10), G4=sample(1:100, 10)) 
venn.plot.df1 <- venn.diagram(x = as.list(df1), filename = NULL, 
          cat.col = c("black", "red",  "green3", "blue"), 
          fill=c("black", "red",  "green3", "blue")) 
grid.draw(venn.plot.df1) 

df2 <- data.frame(G1=sample(1:100, 10), G2=sample(1:100, 10), 
        G3=sample(1:100, 10), G4=sample(1:100, 10)) 
venn.plot.df2 <- venn.diagram(x = as.list(df2), filename = NULL, 
           cat.col = c("black", "red",  "green3", "blue"), 
           fill=c("black", "red",  "green3", "blue")) 
grid.draw(venn.plot.df2) 

df3 <- data.frame(G1=sample(1:100, 10), G2=sample(1:100, 10), 
        G3=sample(1:100, 10), G4=sample(1:100, 10)) 
venn.plot.df3 <- venn.diagram(x = as.list(df3), filename = NULL, 
           cat.col = c("black", "red",  "green3", "blue"), 
           fill=c("black", "red",  "green3", "blue")) 
grid.draw(venn.plot.df3) 

grazie!

+0

Questo non può essere fatto utilizzando qualcosa di simile a 'par (mfrow = c (1,3)) '? – BlankUsername

+0

Si sovrappongono ... –

risposta

12

La funzione venn.diagram restituisce oggetti gList. Sembra che il modo di organizzare loro è quello di convertirli primo a gTree oggetti e poi tracciare con la funzione grid.arrange:

library(gridExtra) 
grid.arrange(gTree(children=venn.plot.df1), gTree(children=venn.plot.df2), 
      gTree(children=venn.plot.df3), ncol=3) 

enter image description here