2017-09-08 1 views
0

Ich habe versucht, zwei auf einer Seite der PDF-Datei wie folgt einander Graphen Seite zu zeichnen:nebeneinander Grundstück mit IGRAPH

library(igraph) 
library(ggplot2) 
post <- topicmodels::posterior(ldaOut) 
layout(matrix(1,1 byrow = TRUE)) 
cor_mat <- cor(t(post[["terms"]])) 
cor_mat[ cor_mat < .05 ] <- 0 
diag(cor_mat) <- 0 
graph <- graph.adjacency(cor_mat, weighted=TRUE, mode="lower") 
graph <- delete.edges(graph, E(graph)[ weight < 0.05]) 
E(graph)$edge.width <- E(graph)$weight* 15 
V(graph)$label <- paste("Topic", V(graph)) 
V(graph)$size <- colSums(post[["topics"]]) * 2 
set.seed(110) 
pdf("all.pdf", width=400,height=350,res=72) 
p1 <- plot.igraph(graph, edge.width = E(graph)$edge.width, 
    edge.color = "blue", vertex.color = "green", 
    vertex.frame.color = NA, vertex.label.color = "black") 
clp <- cluster_label_prop(graph) 
class(clp) 
p2 <- plot(clp, graph, edge.width = E(graph)$edge.width, edge.color = "blue",vertex.color = "green") 
pushViewport(viewport(layout = grid.layout(1, 2))) 
print(p1, vp = viewport(layout.pos.row = 1, layout.pos.col = 1)) 
print(p2, vp = viewport(layout.pos.row = 1, layout.pos.col = 2)) 
dev.off() 

aber die Ergebnisse zeigt die beiden Grundstücke in zwei getrennten Seiten eher als eine Seite . Irgendwelche Empfehlungen zur Behebung dieses Problems?

+0

Post reproduzierbar Beispiel. Was ist 'ldaOut',' post'? – PoGibas

+0

Ersetzen Sie Ihre 'Layout'-Anweisung durch' par (mfrow = c (1,2)) ' – G5W

+0

@PoGibas das sind meine verarbeiteten Daten, und ich habe damit kein Problem. Mein Problem aus den Plot-Ergebnissen. – Sultan

Antwort

1

So dass die Frage eine Antwort ... ist

Das Problem hat, dass, wenn Sie auf eine neue Grafikgerät mit Ihrer pdf Aussage ändern, verlieren Sie einen Hinweis, dass Sie einen 1-by-2-Display wollten Grafiken. Eine Lösung besteht darin,

par(mfrow=c(1,2)) 

sofort nach Ihrer PDF-Anweisung hinzuzufügen. Es ist möglich, dass Ihre layout Anweisung funktioniert hätte, wenn sie dort platziert wurde.