2017-10-12 104 views
1

我想用相同(或关闭)布局重现网络图。我知道igraph有tkplot.getcoords()函数。我想根据gplot的结果复制/获取/设置一组顶点坐标,这是SNA软件包的绘图功能。是否可以从网络地块获取坐标?

我在找地方做这件事,但没有找到任何东西。任何帮助将非常感激。

编辑:增加了一个可重复的例子。我希望所有9个地块都使用相同的布局,而不使用igraph :: tkplot。

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 - 可重复生成的示例),其中包含一些示例输入数据和对所需输出的清晰描述。 – MrFlick

+0

@MrFlick,谢谢。我已经添加了上面的示例。有关如何捕获迭代1的坐标并将其应用于所有其他迭代的想法? – elliot

回答

2

分配的情节的对象,然后传递到参数coords =gplot

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