荣格力有向图
JUNG force directed graph
我正在尝试在 JUNG 中构建一个力导向图,类似于您可以在 D3.js.
中(非常容易地)创建的图
大部分都非常简单,但文档有点旧,示例不包括力导向的示例(尽管那里有一个 java 小程序声称是演示,但它什么也没显示)
无论如何,使用DirectedSparseGraph
我已经实现了大部分功能:
directedGraph = new DirectedSparseGraph();
directedGraph.addVertex("someVertex");
directedGraph.addVertex("someOtherVertex");
// etc
directedGraph.addEdge("someVertex", "someOtherVertex");
// etc
这几乎完全符合我的要求,但我不知道如何为边缘分配长度以显示不同的力。我查看了文档和 Google 但找不到任何东西。
我希望是这样的
directedGraph.addEdge([edge 1], [edge 2], [edge length]);
但它似乎不存在于 api 中。
有人知道如何实现吗?
N.b。荣格版本是 2.0.1
看起来您正在查看 jung-1.x 文档。在 jung-2.x DirectedSparseGraph<V, E>
中是一个泛型 class,其顶点 V
和边 E
.
具有类型参数
这也是定义具有任意属性的顶点和边的方法。例如。如果你想有边权重,创建一个合适的边class,权重为:
class Edge {
public double weight;
}
请注意,您通常还希望至少为顶点实现 equals()
和 hashCode()
。
如果您想使用权重进行布局(例如在 SpringLayout
, one of the constructors 中需要 lengthFunction
。
我正在尝试在 JUNG 中构建一个力导向图,类似于您可以在 D3.js.
中(非常容易地)创建的图大部分都非常简单,但文档有点旧,示例不包括力导向的示例(尽管那里有一个 java 小程序声称是演示,但它什么也没显示)
无论如何,使用DirectedSparseGraph
我已经实现了大部分功能:
directedGraph = new DirectedSparseGraph();
directedGraph.addVertex("someVertex");
directedGraph.addVertex("someOtherVertex");
// etc
directedGraph.addEdge("someVertex", "someOtherVertex");
// etc
这几乎完全符合我的要求,但我不知道如何为边缘分配长度以显示不同的力。我查看了文档和 Google 但找不到任何东西。
我希望是这样的
directedGraph.addEdge([edge 1], [edge 2], [edge length]);
但它似乎不存在于 api 中。
有人知道如何实现吗?
N.b。荣格版本是 2.0.1
看起来您正在查看 jung-1.x 文档。在 jung-2.x DirectedSparseGraph<V, E>
中是一个泛型 class,其顶点 V
和边 E
.
这也是定义具有任意属性的顶点和边的方法。例如。如果你想有边权重,创建一个合适的边class,权重为:
class Edge {
public double weight;
}
请注意,您通常还希望至少为顶点实现 equals()
和 hashCode()
。
如果您想使用权重进行布局(例如在 SpringLayout
, one of the constructors 中需要 lengthFunction
。