2017-10-12 4 views
1

Ich möchte ein Netzwerkdiagramm mit dem gleichen (oder nahe) Layout reproduzieren. Ich weiß, dass Igraph die Funktion tkplot.getcoords() hat. Ich möchte eine Reihe von Eckpunktkoordinaten basierend auf den Ergebnissen von gplot kopieren/erhalten/setzen. Dies ist die Plotfunktion des SNA-Pakets.Ist es möglich, Koordinaten von Netzwerkplots zu erhalten?

Ich habe nach Orten gesucht, um dies zu tun, aber habe nichts gefunden. Jede Hilfe würde sehr geschätzt werden.

BEARBEITEN: Ein reproduzierbares Beispiel hinzugefügt. Ich hätte gerne, dass alle 9 Grundstücke das gleiche Layout haben, ohne dass man iigraph :: tkplot benutzt.

library(statnet) 

set.seed(101) 
mydata <- data.frame(from = sample(1:15,10,replace = T), 
      to = sample(1:5,10,replace = T)) 



par(mfrow=c(3,3), mar=c(1,1,1,1)) 
k <- 1:9 
for (i in 1:9) { 
    gplot(network(mydata),main = paste('Iteration',k[i])) 
} 

enter image description here

+0

Es wäre einfacher, Ihnen zu helfen, wenn Sie ein [reproduzierbares Beispiel] zur Verfügung gestellt (https://stackoverflow.com/questions/5963269/how-to-make-a-great-r (Beispiel) mit einigen Beispieleingabedaten und einer klaren Beschreibung der gewünschten Ausgabe. – MrFlick

+0

@MrFlick, danke. Ich habe das obige Beispiel hinzugefügt. Haben Sie irgendwelche Gedanken, wie Sie die Koordinaten von Iteration 1 erfassen und auf alle anderen Iterationen anwenden können? – elliot

Antwort

2

die Handlung an einem Objekt zuweisen und dann, dass coords = innerhalb gplot dem Argument übergeben.

Wenn Sie 'l' überprüfen, können Sie sehen, dass es sich um eine Matrix von x, y Koordinaten handelt.

> l 
       x   y 
[1,] -0.4123840 -13.450699 
[2,] 6.1177559 -8.707917 
[3,] 0.5330693 -10.061580 
[4,] -1.5359554 -11.325280 
[5,] 2.7944671 -10.988359 
[6,] 5.1480964 -10.557675 
[7,] -1.7695806 -5.636370 
[8,] 2.2053996 -4.643251 
[9,] 1.8990660 -13.347872 
[10,] 2.1035474 -8.824222 
[11,] -3.3637096 -10.181900 

enter image description here

+0

Perfekt! Vielen Dank. – elliot

Verwandte Themen