以下是使用DOTExporter 以 DOT 格式导出图形的两个示例。在第一个示例中,没有提供 vertexIDProvider。结果,导出器不知道如何命名您的顶点,因此它只是为每个顶点分配一个唯一编号。在第二个示例中,我提供了vertexIDProvider。 vertexIDProvider 是一个 Function<V,String> vertexIdProvider,它将一个顶点映射到一个字符串。在第二个示例中,我只是将一个顶点映射到它的字符串表示。
最后,在示例中我使用了一个简单的Writer。在您的实现中,您可能希望使用 FileWriter 将结果写入实际文件。
//Create a graph with some vertices and edges
Graph<String, DefaultEdge> graph=new SimpleGraph<>(DefaultEdge.class);
Graphs.addAllVertices(graph, Arrays.asList("v1", "v2", "v3", "v4"));
graph.addEdge("v1", "v2");
graph.addEdge("v2", "v3");
graph.addEdge("v3", "v4");
graph.addEdge("v4", "v1");
//Create the exporter (without ID provider)
DOTExporter<String, DefaultEdge> exporter=new DOTExporter<>();
Writer writer = new StringWriter();
exporter.exportGraph(graph, writer);
System.out.println(writer.toString());
//Create the exporter (with ID provider)
DOTExporter<String, DefaultEdge> exporter2=new DOTExporter<>(v -> v.toString());
writer = new StringWriter();
exporter2.exportGraph(graph, writer);
System.out.println(writer.toString());
输出:
strict graph G {
1;
2;
3;
4;
1 -- 2;
2 -- 3;
3 -- 4;
4 -- 1;
}
strict graph G {
v1;
v2;
v3;
v4;
v1 -- v2;
v2 -- v3;
v3 -- v4;
v4 -- v1;
}
可以在user documentation 中找到更详细的示例。更多示例可以在DOTExporterTest 类中找到。