帮助!我正在寻找一个Java 应用程序,它可以生成以下任何一种格式的图形:
- .graphml
- .ygf
- .gml
- .tgf
到目前为止,我已经找到了以下解决方案:
- yFiles For Java
- Pro:导出到graphml,可以在yEd中打开,基于Java,完美。
- 为什么我不能使用它:使用会花费我超过2000 美元:( 这正是我所需要的
- 格菲
- Pro:免费,导出到 graphml,基于 Java!
- 为什么我不能使用它:当我尝试在 yEd 中打开生成的 graphml 文件时,graphml 被破坏:它是线性的 - 一行,就像这个截图:
- 如果我让它工作,那么这是完美的
- 我尝试的图表是使用他们的示例项目生成的
- JGraphX
- 优点:能够生成图表,基于 Java,免费
- 为什么我不能使用它:如何将生成的图形导出到 graphml?我想不通...
- 预熔
- Pro:免费,图形生成,基于 Java
- 我不能使用它:似乎我只能阅读 graphml,而不能写 graphml。另外,我用 build.sh all 构建了演示,但是当我尝试运行 demos.jar 时,我得到“加载主类失败”......
- 带有GraphML 阅读器和编写器库的蓝图( Tinkerpop?)
- Pro:Java,免费,好像可以用它导出 graphml
- 为什么我不能使用它:我很困惑,我是否需要将它与列出的“实现”之一结合使用?我该如何使用它?
- 带有GraphMLExporter的JGraphT
- Pro:能够生成图形,基于Java,免费,可以导出到graphml我认为
- 为什么我不能使用它:我不知道如何导出它!当我尝试在 yed 中打开生成的 graphml 时,我得到“ yEd遇到以下错误:无法导入文件 test.graphml。” 我使用了他们的示例项目,并这样做了:
我使用的 JGraphT 代码:
UndirectedGraph<String, DefaultEdge> g = new SimpleGraph<String, DefaultEdge>(DefaultEdge.class);
String v1 = "v1";
String v2 = "v2";
String v3 = "v3";
String v4 = "v4";
// add the vertices
g.addVertex(v1);
g.addVertex(v2);
g.addVertex(v3);
g.addVertex(v4);
// add edges to create a circuit
g.addEdge(v1, v2);
g.addEdge(v2, v3);
g.addEdge(v3, v4);
g.addEdge(v4, v1);
FileWriter w;
try {
GmlExporter<String, DefaultEdge> exporter =
new GmlExporter<String, DefaultEdge>();
w = new FileWriter("test.graphml");
exporter.export(w, g);
} catch (IOException e) {
e.printStackTrace();
}
有任何想法吗?谢谢!