gpt4 book ai didi

r - 我应该使用哪种布局来获得 igraph 中的非重叠边缘?

转载 作者:行者123 更新时间:2023-12-03 14:32:52 25 4
gpt4 key购买 nike

我正在尝试使用树状数据构建图形,其中节点通常分为 > 2 个边。我尝试了各种布局,我看到 layout.reingold.tilford 参数将生成具有非 fork 数据的树状图。然而,输出并不是特别有吸引力。我宁愿使用 layout.lgl 或 layout.kamada.kawai 之类的东西,因为它们会产生更多的径向结构。我看不到如何更改 R 中的参数,以使这些树没有重叠的边缘。这可能吗?

我导入了一个 Pajek 格式的简单数据文件,有 355 个节点和 354 个边。我目前正在使用以下方法打印它:

plot.igraph(g,vertex.size=3,vertex.label=NA,layout=layout.lgl)

这给了我这样的输出,这很好,但仍然有重叠的边缘。我读到您可以使用 tkplot 或其他程序(如 cytoscape)手动修复此问题,但是我有很多要构建的程序,并且它们的大小使手动更正变得很麻烦。

非常感谢。
Here is an example of the output I get

最佳答案

layout.reingold.tilford有一个参数叫 circular .将此设置为 TRUE将通过将 X 坐标视为角度(经过适当的重新缩放)和 Y 坐标作为半径将最终布局转换为径向布局。具有讽刺意味的是,这并不能保证最终不会有边缘交叉,但如果您的子树与图形的其余部分相比不是非常宽,它会很好地工作:

> g <- barabasi.game(100, directed=F)
> layout <- layout.reingold.tilford(g, circular=T)
> plot(g, layout=layout)

关于r - 我应该使用哪种布局来获得 igraph 中的非重叠边缘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13961913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com