如何从邻接列表创建图形图像?

时间:2016-08-14 08:13:09

标签: java graph draw adjacency-list

我在文本文件中有一个图表的邻接列表表示。例如。

0 -> 1, 2
1 -> 
2 -> 1
3 -> 1

我想从输入文本文件为此图形创建图像,图形应如下所示: enter image description here

是否有可用Java或任何其他语言提供的软件可以帮助我实现这一目标?

1 个答案:

答案 0 :(得分:1)

有一个好的lib,Universal Network/Graph Framework

这里有一个例子:

enter image description here

  public static void main(String[] args) {
DirectedSparseGraph<String, String> g = new DirectedSparseGraph<>();
g.addVertex("0");
g.addVertex("1");
g.addVertex("2");
g.addVertex("3");

g.addEdge("Edge1", "0", "1");
g.addEdge("Edge2", "0", "2");
g.addEdge("Edge3", "2", "1");
g.addEdge("Edge4", "3", "1");


VisualizationImageServer<String, String> vv = new VisualizationImageServer<>(new CircleLayout<>(g),
    new Dimension(600, 400));

Transformer<String, String> transformer = new Transformer<String, String>() {
    @Override
    public String transform(String arg0) {
    return arg0;
    }
};
vv.getRenderContext().setVertexLabelTransformer(transformer);

JFrame frame = new JFrame("My Graph");
frame.setLocationRelativeTo(null);
frame.getContentPane().add(vv);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}