我正在构建一个关于图论算法的项目,为此我使用JGraphT。我已经完全构建了我的图表,并且在过去的几个月里我一直在研究它。现在我想导出它,以便在 Gephi 中可视化它。我不想使用 JGraph 和 Java 可视化,因为我已经有足够的代码并且我想保持简单。我想使用JgraphT 中的 DOTExporter 类。我已经达到了一个点,即我导出精细的顶点和边,但不导出边权重。
所以这是我的导出功能。我不知道如何实现ComponentAttributeProvider
接口,也找不到摆脱这种混乱的方法。
有什么想法我应该放什么而不是null,null?
static public void exportGraph(){
StringNameProvider<CustomVertex> p1=new StringNameProvider<CustomVertex>();
IntegerNameProvider<CustomVertex> p2=new IntegerNameProvider<CustomVertex>();
StringEdgeNameProvider<CustomWeightedEdge> p3 = new StringEdgeNameProvider<CustomWeightedEdge>();
DOTExporter export=new DOTExporter(p2, p1, p3, null, null);
try {
export.export(new FileWriter("graph.dot"), g);
}catch (IOException e){}
}
我做过这样的事情
ComponentAttributeProvider<CustomWeightedEdge> edgeAttributeProvider =
new ComponentAttributeProvider<CustomWeightedEdge>() {
public Map<String, String> getComponentAttributes(CustomWeightedEdge e) {
Map<String, String> map =new LinkedHashMap<String, String>();
map.put("weight", Double.toString(g.getEdgeWeight(e)));
return map;
}
};