2017-06-07 13 views
1

Javaでgephiツールキットを使用してグラフを作成する必要があります。私はノードとエッジデータをCSV形式で持っています。すべてのツールキットのチュートリアルには、gmlまたはgexf形式をインポートする構文があります。私は2つのCSVファイルを持っているので、誰でも私にこのcsvをJavaのgephi toolkit jarを使ってインポートする構文を教えてくれますか?Javaでgephiツールキットを使用してノードとエッジCSVをインポート

答えて

0

gephi-tool-kitとgephiでcsvファイルを同時にインポートしようとすると、問題がないかどうかを確認するのが良いでしょう。次に、gefs-kit-kitによってcsvファイルをインポートする方法を示します。ツールキットをステップバイステップで実行します。ここで


私はgephi-toolkit-0.9.2-all.jarNetBeans IDE 8.2を使用してgithubから、いくつかのデモを参照してください。

ここで私のテストクラスTransfer95のような新しいJavaプロジェクトと新しいJavaクラスを作成した後、もちろんあなたのライブラリにgephi-toolkit jarファイルを追加する必要があります。チュートリアルとgephi-toolkitのjavadocによると、新しいツールキットを使用するために多くの変更があります。インポートメソッドをgexfやcsvファイルのようないくつかの異なるタイプのファイルをインポートすることができるようです。

最初の数行のコードは、initプロジェクトとgetコントローラまたはコンテナと同じ共通コードです。

//Init a project - and therefore a workspace 
ProjectController pc = Lookup.getDefault().lookup(ProjectController.class); 
pc.newProject(); 
Workspace workspace = pc.getCurrentWorkspace(); 

//Get controllers and models 
ImportController importController = Lookup.getDefault().lookup(ImportController.class); 

//Get models and controllers for this new workspace - will be useful later 
GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(); 

//Import file 
Container container; 
try { 
    File file_node = new File(getClass().getResource("/resourceason2/club_1_1995.csv").toURI()); 
    container = importController.importFile(file_node); 
    container.getLoader().setEdgeDefault(EdgeDirectionDefault.DIRECTED); //Force DIRECTED 
    container.getLoader().setAllowAutoNode(true); //create missing nodes 
    container.getLoader().setEdgesMergeStrategy(EdgeMergeStrategy.SUM); 
    container.getLoader().setAutoScale(true); 

} catch (Exception ex) { 
    ex.printStackTrace(); 
    return; 
} 

ここで私はちょうどImportExportまたはHeadlessSimpleのデモでgexfの同じimportController方法でノードのcsvファイルをインポートしようと、それが働いていたが、ここで我々はまたに、エッジのcsvファイルをインポートする必要がありますネットワーク、そして私は最終的に現在のワークスペースに新しいコンテナーを追加することができのデモGenerateGraphから答えを見つけたので、私たちはAPPEする必要があり、ここの後にあるインポートcsvファイルのコード

//Init a project - and therefore a workspace 
    ProjectController pc = Lookup.getDefault().lookup(ProjectController.class); 
    pc.newProject(); 
    Workspace workspace = pc.getCurrentWorkspace(); 

    //Get controllers and models 
    ImportController importController = Lookup.getDefault().lookup(ImportController.class); 

    //Get models and controllers for this new workspace - will be useful later 
    GraphModel graphModel = Lookup.getDefault().lookup(GraphController.class).getGraphModel(); 

    //Import file 
    Container container,container2; 
    try { 
     File file_node = new File(getClass().getResource("/resourceason2/club_1_1995.csv").toURI()); 
     container = importController.importFile(file_node); 
     container.getLoader().setEdgeDefault(EdgeDirectionDefault.DIRECTED); //Force DIRECTED 
     container.getLoader().setAllowAutoNode(true); //create missing nodes 
     container.getLoader().setEdgesMergeStrategy(EdgeMergeStrategy.SUM); 
     container.getLoader().setAutoScale(true); 

     File file_edge = new File(getClass().getResource("/resourceason2/transfer_1_1995.csv").toURI()); 
     container2 = importController.importFile(file_edge); 
     container2.getLoader().setEdgeDefault(EdgeDirectionDefault.DIRECTED); //Force DIRECTED 
     container2.getLoader().setAllowAutoNode(true); //create missing nodes 
     container2.getLoader().setEdgesMergeStrategy(EdgeMergeStrategy.SUM); 
     container2.getLoader().setAutoScale(true); 

    } catch (Exception ex) { 
     ex.printStackTrace(); 
     return; 
    } 

私がgephiとgephi・ツールキットにより、CSVファイルのインポートをテストすることをアドバイスする理由NDネットワークが

//See if graph is well imported 
    DirectedGraph graph = graphModel.getDirectedGraph(); 
    System.out.println("Nodes: " + graph.getNodeCount()); 
    System.out.println("Edges: " + graph.getEdgeCount()); 

正しいかどうかを最終的に

//Append imported data to GraphAPI 
    importController.process(container, new DefaultProcessor(), workspace); 
    importController.process(container2, new AppendProcessor(), workspace); //Use AppendProcessor to append to current workspace 

など、同じワークスペースに新しいコンテナがチェックしているのです同じ時間。そして、それは私のダミーコードです、うまくいけばそれはあなたを助け、より良い答えがあるかもしれません。

参照

関連する問題