繁体   English   中英

如何延长igraph网络图中的边缘(layout = fruchterman.reingold)?

[英]How do I lengthen edges in an igraph network plot (layout=fruchterman.reingold)?

尝试在R中进行网络绘图。如何使用IGraph延长网络图中的边缘?

我其实想要使用fruchterman-reingold布局。 有什么方法可以使基于力的算法“更加弹性”,以便我的顶点更远?

谢谢。

您可以使用layout.fruchterman.reingold函数控制Fruchterman-Reingold算法。 请参阅: help('layout.fruchterman.reingold') 我经常使用的设置让你有更多的间距:

l <- layout.fruchterman.reingold(g,niter=500,area=vcount(g)^2.3,repulserad=vcount(g)^2.8)
plot(g,layout=l)

其中g是你的图形对象。 最好只为图表测试这些参数的不同值,看看哪些有效。 特别是repulserad影响图中的间距。 默认值是节点数的平方,因此较高的值应该可以获得更多的间隔图。

如果layout.fruchterman.reingold算法仍然没有通过调整参数给出您想要的内容,只需执行以下操作即可。 每个布局都返回一组坐标,x和y坐标分别位于第一列和第二列。 您可以在此处应用您喜欢的任何转换,如果您只想缩放它,只需使用即可

L = layout.fruchterman.reingold(G)*s; #Scaling factor s

当然也可以进行更多花哨的转换。 仅供记录,您还可以使用tkplot(G, layout=L)手动编辑布局。 您可以通过L = tkplot.getcoords(1)获取坐标。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM