Java JgraphT导出到点文件
我正在建立一个关于图论算法的项目,为此我使用了。我已经完全建立了我的图表,在过去的几个月里我一直在做它。现在我想导出它,以便在Gephi中可视化它。 我不想使用JGraph和Java可视化,因为我已经有了足够的代码,我想保持它的简单。我想用。我已经达到了一个点,我导出了精细的顶点和边,但没有导出边权重 这就是我的导出函数。我不知道如何实现Java JgraphT导出到点文件,java,interface,export,dot,jgrapht,Java,Interface,Export,Dot,Jgrapht,我正在建立一个关于图论算法的项目,为此我使用了。我已经完全建立了我的图表,在过去的几个月里我一直在做它。现在我想导出它,以便在Gephi中可视化它。 我不想使用JGraph和Java可视化,因为我已经有了足够的代码,我想保持它的简单。我想用。我已经达到了一个点,我导出了精细的顶点和边,但没有导出边权重 这就是我的导出函数。我不知道如何实现ComponentAttributeProvider接口,无法找到摆脱这种混乱局面的方法 你知道我应该放什么而不是空的,空的吗 static public vo
ComponentAttributeProvider
接口,无法找到摆脱这种混乱局面的方法
你知道我应该放什么而不是空的,空的吗
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){}
}
static public void exportGraph(){
StringNameProvider p1=新的StringNameProvider();
integernameproviderp2=新IntegerNameProvider();
StringEdgeNameProvider p3=新StringEdgeNameProvider();
DOTExporter导出=新的DOTExporter(p2、p1、p3、null、null);
试一试{
export.export(新文件编写器(“graph.dot”),g);
}捕获(IOE){}
}
我做过类似的事情
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;
}
};
ComponentAttributeProvider边缘属性Provider=
新组件AttributeProvider(){
公共映射getComponentAttributes(CustomWeightedEdge e){
Map Map=newlinkedhashmap();
map.put(“weight”,Double.toString(g.getedgewight(e));
返回图;
}
};
好的。
对于其他正在研究如何使用点文件将加权图从jgrapht导出到gephi的人
static public void exportGraph(){
IntegerNameProvider<CustomVertex> p1=new IntegerNameProvider<CustomVertex>();
StringNameProvider<CustomVertex> p2=new StringNameProvider<CustomVertex>();
ComponentAttributeProvider<DefaultWeightedEdge> p4 =
new ComponentAttributeProvider<DefaultWeightedEdge>() {
public Map<String, String> getComponentAttributes(DefaultWeightedEdge e) {
Map<String, String> map =new LinkedHashMap<String, String>();
map.put("weight", Double.toString(g.getEdgeWeight(e)));
return map;
}
};
DOTExporter export=new DOTExporter(p1, p2, null, null, p4);
try {
export.export(new FileWriter("graph.dot"), g);
}catch (IOException e){}
}
static public void exportGraph(){
IntegerNameProvider p1=新IntegerNameProvider();
StringNameProvider p2=新的StringNameProvider();
组件属性提供程序p4=
新组件AttributeProvider(){
公共映射getComponentAttributes(DefaultWeightedEdge e){
Map Map=newlinkedhashmap();
map.put(“weight”,Double.toString(g.getedgewight(e));
返回图;
}
};
DOTExporter导出=新的DOTExporter(p1、p2、null、null、p4);
试一试{
export.export(新文件编写器(“graph.dot”),g);
}捕获(IOE){}
}
供将来参考,因为这个问题是一种古老的问题,解决方案不再按照Gewure工作
如果您不局限于点格式,那么可以使用graphML格式和API
org.jgrapht.nio.graphML.GraphMLExporter.setExportedgWeights(true)
来管理它。适用于jgrapht 1.5.1。这不再适用