2016-11-24 2 views
4

Wie können wir Netzwerkstück (IGRAPH Paket Grundstück) und Venn-Diagramm (Mengendiagramm GLIST Objekt) Seite an Seite in einer PDF-Seite plotten?Ausgang Venn GLIST Objekt und Netzwerk-Plot side-by-side

Versuchte unten Lösungen zu folgen, hat nicht funktioniert:
Plot gList side by side
Plot 2 tmap objects side-by-side
Side-by-side Venn diagram using Vennerable

Hier ist ein Beispiel, die sie in zwei Seiten aufgetragen ist. Ich habe grid.newpage() verwendet, um es in separaten Seiten zu plotten, sonst wird es übereinander geplottet.

library(grid) 
library(igraph) 
library(VennDiagram) 

#network graph object 
relations <- data.frame(from=c("Bob", "Cecil", "Cecil", "David", 
           "David", "Esmeralda"), 
         to=c("Alice", "Bob", "Alice", "Alice", "Bob", "Alice")) 
g <- graph_from_data_frame(relations, directed=TRUE) 

# venn plot object 
plotVenn <- venn.diagram(
    list(A = 1:150, B = 121:170), 
    filename = NULL) 
class(plotVenn) 
# [1] "gList" 

# output to PDF, outputs into 2 pages, I need 1 page 2 plots side-by-side 
pdf("temp.pdf") 

#network 
igraph::plot.igraph(g) 

#venn 
grid.newpage() 
grid.draw(plotVenn) 

dev.off() 

enter image description here

+2

http://stackoverflow.com/questions/33269538/venn-diagrams-in-multiple-figure-r vielleicht nützlich – user20650

+1

vielleicht auch nützlich: http://stackoverflow.com/questions/27929452/r- return-corrplot-as-object # 27948707, um das igraph-plot in grob zu konvertieren – user20650

+1

@ user20650 OK, ich denke, das ist ein Dupe zu deinen früheren Antworten. Danke für die Links. – zx8754

Antwort

4

Inspiriert von den ersten Link oben, können Sie "Trick" Ihren Weg, indem sie koexistieren eine "reguläre" plot und grid:

pdf("temp.pdf",) 
layout(matrix(1:2, nrow=1)) 
igraph::plot.igraph(g) 
plot.new() 
pushViewport(viewport(layout = grid.layout(1, 2, widths=unit(c(0.5, 0.5), "npc")))) 
pushViewport(viewport(layout.pos.col = 2)) 
grid.draw(plotVenn) 
popViewport(0) 
dev.off() 

enter image description here

3

Kam mit nach unten Lösung folgenden Links in den Kommentaren: Venn diagrams in multiple figure

pdf("temp.pdf") 

layout(matrix(1:2, 1, byrow = TRUE)) 
#network 
igraph::plot.igraph(g) 

#network 
frame() 
vps <- baseViewports() 
pushViewport(vps$inner, vps$figure, vps$plot) 
grid.draw(plotVenn) 
popViewport(2) 

dev.off()