如何复制由estimateNetwork创建的网络布局

yqkkidmi  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(249)

我用函数estimateNetwork在R中创建了两个网络,然后a我绘制了它们,我需要通过视觉检查来比较它们,但是节点的位置不同,我应该得到相同(或相似)的位置。
一位评论家告诉我:"你可以通过保存其中一个图表的布局来实现这一点,并将其作为R中其他图表布局的基础"。我研究过,但我无法做到这一点。
我在igraph库中找到了一个解决方案,但是我想保持我原来的布局而不改变我的工作。
这是我使用的代码:

#Network 1
net_f <- estimateNetwork(f, default="EBICglasso", tuning=0.5, corMethod = "npn", 
                         missing="listwise", sampleSize="maximum")

#Network 2
net_m <- estimateNetwork(m, default="EBICglasso", tuning=0.5, corMethod = "npn", 
                         missing="listwise", sampleSize="maximum")

#Plot Network 1
netq_f<-plot(net_f, layout="spring", groups=groups)

#Plot Network 2
netq_m<-plot(net_m, layout="spring", groups=groups)
wwtsj6pe

wwtsj6pe1#

我用这种方法解决了:

library("smacof")
mds_f<-mds(sim2diss(net_f$graph), type="mspline")
mds_m<-mds(sim2diss(net_m$graph), type="mspline")
fit_procrustes<-Procrustes(mds_f$conf, mds_m$conf)

#Plot Network 1
netq_f<-qgraph(net_f$graph, layout=fit_procrustes$X, groups=groups)

#Plot Network 2
netq_m<-qgraph(net_m$graph, layout=fit_procrustes$Yhat, groups=groups)

相关问题