许多节点的图形算法

7
我一直在尝试开发一个基于Web的应用程序来帮助绘制节点及其交互关系图。我尝试使用Sigma.JS和Force Atlas扩展。对于我的简单测试(少量节点),结果非常好看,但是增加了一千个节点后,结果变得混乱无序。Many nodes vs Few Nodes是否有什么方法可以使结果更易于查看?(不仅仅是一个大块)我该如何做到这一点?是否已经编写了任何算法(我可以实现)?请注意保留HTML标记,只翻译文本内容。

3
请搜索谷歌上的“图聚类算法”或“分层图聚类”。 - JayC
2
你可以使用强连通分量(SCC)将图形划分为较小的组件(将每个SCC表示为单个节点,在选择时展开)。 - Vikram Bhat
1
高度连接的节点图没有“子流形”,使它们难以轻松查看。即使您将节点间距离扩大很大,也不会使blob更容易理解。也许您需要另一种查看数据的方式。d3.js具有许多算法,包括其自己的力图布局。http://d3js.org/ - Dr Rob Lang
@brainwipe 上面的是一个力导向算法(我使用它是因为它使用了我所给出的相同输入)。然而,我可以解析我的数据以匹配d3js的输入,并通过这种方式进行操作,以查看是否会给我带来更好的结果。 - 1478963
1
@user2100799 希望它是特定于领域的,这可能会给出一些关于哪些特定算法可能适合您的线索。很抱歉,我什么也没有 :(。你能做的最好的事情就是像JayC建议的那样挑选各种分层/多尺度力算法,并看看哪些效果好。 - Andy Jones
显示剩余5条评论
2个回答

2
您可以尝试使用 Fruchterman-Reingold 力导向布局(有一个 sigma 插件 可用)。它特别是最小化交叉链接的数量,因此通常更适合大型图形(除非所有节点都有大量连接)。
此外,fisheye 插件 在绘制完图形后可能有助于更好地理解图形。

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接