2017-10-12 5 views
1

同じ(または近い)レイアウトのネットワークグラフを再現したいと思います。私はigraphにtkplot.getcoords()関数があることを知っています。 SNAパッケージのプロット関数であるgplotの結果に基づいて、頂点座標のセットをコピー/取得/ set.seedしたいと思います。ネットワークプロットから座標を取得できますか?

私はこれを行う場所を探しましたが、何も見つかりませんでした。どんな助けでも大歓迎です。

EDIT:再現可能な例を追加しました。私はigraph :: tkplotを使わずに9つのプロットすべてが同じレイアウトになるようにしたいと思います。

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

あなたは[再現可能な例](https://stackoverflow.com/questions/5963269/how-to-make-a-great-rを提供する場合、あなたを助けるために容易になるだろう-reproducible-example)に、いくつかのサンプル入力データと目的の出力の明確な説明が含まれています。 – MrFlick

+0

@MrFlick、ありがとう。上記の例を追加しました。イテレーション1の座標を取得し、それを他のすべての反復に適用する方法に関する考えはありますか? – elliot

答えて

2

オブジェクトに対してプロットを割り当て、その後gplot内引数coords =にそれを渡します。

library(statnet) 

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


l <- gplot(network(mydata)) 
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]), coord = l) 
} 

「l」を調べると、それがx、y座標のマトリックスであることがわかります。

> 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

パーフェクト!どうもありがとう。 – elliot

関連する問題