0

我想从 YFiles 迁移到 Jung。当涉及到小图时,显示几乎与 YFiles 相似。但是对于大图,我没有找到任何布局来满足我的期望。这是一个包含 1000 个元素的图表,YFiles 似乎可以很好地显示: YFiles Graph Display

在 Jung 中,子图之间的距离不一致,如下图所示:

JUNG 图表显示

对于 JUNG,我使用了带有 FRLayout 的 SparseMultigraph,该 FRLayout 具有以下属性:

FRLayout<GraphNode, GraphLink> layout = new FRLayout<>(graph);
layout.setMaxIterations(100);
layout.setAttractionMultiplier(0.2); // default 0.75
layout.setRepulsionMultiplier(0.3); // default 0.75

我玩了很多迭代次数、吸引力乘数和排斥乘数,但这是我发现的最佳组合。

是否有更合适的布局/图表来显示这样的图表以获得与 YFiles 显示的内容相似的内容?

4

1 回答 1

0

您希望从布局中获得非常具体的结果,因此您最好的选择可能是实现自己的布局算法。JUNG 提供的布局旨在相当通用,并且适用于各种图形;他们不应该精确地做你想要的任何特定图表。

如果您可以找出 YFiles 正在使用的算法,您将拥有的一种选择是简单地重新实现他们的算法。

但是,在这种情况下,由于您的图表似乎是许多大小和拓扑完全相同的独立隔离组件的聚合,因此我建议创建一个专门的实现来确定地布置图表。您可以使用WeakComponentClusterer来识别组件,使用简单的公式来确定组件的每个元素的相对位置应该在哪里,然后布置每个组件。

StaticLayout对确定性方法很有用。

于 2016-11-11T19:12:32.370 回答