Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JgraphT导出到点文件_Java_Interface_Export_Dot_Jgrapht - Fatal编程技术网

Java JgraphT导出到点文件

Java JgraphT导出到点文件,java,interface,export,dot,jgrapht,Java,Interface,Export,Dot,Jgrapht,我正在建立一个关于图论算法的项目,为此我使用了。我已经完全建立了我的图表,在过去的几个月里我一直在做它。现在我想导出它,以便在Gephi中可视化它。 我不想使用JGraph和Java可视化,因为我已经有了足够的代码,我想保持它的简单。我想用。我已经达到了一个点,我导出了精细的顶点和边,但没有导出边权重 这就是我的导出函数。我不知道如何实现ComponentAttributeProvider接口,无法找到摆脱这种混乱局面的方法 你知道我应该放什么而不是空的,空的吗 static public vo

我正在建立一个关于图论算法的项目,为此我使用了。我已经完全建立了我的图表,在过去的几个月里我一直在做它。现在我想导出它,以便在Gephi中可视化它。 我不想使用JGraph和Java可视化,因为我已经有了足够的代码,我想保持它的简单。我想用。我已经达到了一个点,我导出了精细的顶点和边,但没有导出边权重

这就是我的导出函数。我不知道如何实现
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。

这不再适用