本文介绍利用Java的第三方API JUNG 实现图的可视化
通过对示例代码分析,解析可视化方法。
JUNG 下载地址
https://sourceforge.net/projects/jung/files/
JUNG api参考文档:
http://jung.sourceforge.net/doc/api/overview-summary.html
预处理
JUNG 中的图可视化方法基于JUNG内置图类,本文基于自定义图呈现可视化图,故需要先将自定义图转存为JUNG图对象。
JUNG 提供 泛型接口,进行转化或创建时利用自定义边类型与节点类型即可。
以以下代码为例:
/*** 将graph.Graph 转为 JUNG.graph.Graph 过滤掉超边.* * @param g - 基于 graph.Graph* @return edu.uci.ics.jung.graph.Graph*/public static edu.uci.ics.jung.graph.Graph<Vertex, Edge> graphTransform(Graph<Vertex, Edge> g) { edu.uci.ics.jung.graph.Graph<Vertex, Edge> graph = new SparseGraph<>(); // 稀疏图 for (Vertex vertex : g.vertices()) { graph.addVertex(vertex); } for (Edge edge : g.edges()) { if (edge.sourceVertices().size() == 0) { // 超边 continue; } if (edge.sourceVertices().size() == 1) { // 有向边 graph.addEdge(edge, getVertex(edge.sourceVertices()), getVertex(edge.targetVertices()), EdgeType.DIRECTED); } else { //