2016-06-09 5 views
0

Ich versuche, das Gephi Toolkit 0.9.1 zu verwenden, um manuell ein Diagramm zu erstellen und anzuzeigen, aber ich kann nicht scheinen, die richtige Ausgabe zu erhalten. Ich habe viel Code gesehen, der eine Datei importiert und daraus ein Diagramm erstellt, aber diese Methode verwendet Container, die keinen Sinn ergeben, wenn Sie nichts zu importieren haben. Unten ist mein Code (die meisten davon sind nur Teile des Demo-Codes zusammengeschmolzen). Darunter befindet sich ein Link zum Display, das nur ein durchsichtiges Rechteck ist. Es scheint nur eine Kante zu sein (wenn auch seltsam formatiert), denn als ich die Kantenfarbe änderte, änderte sich die Anzeige entsprechend. Ich habe es mit 2 Knoten und 1 Kante, sowie 3 Knoten und 2 Kanten versucht. Beide haben genau die gleiche Ausgabe, soweit ich das beurteilen kann. Ich bin unglaublich neu im Umgang mit dem Gephi Toolkit, daher bin ich mir sicher, dass der Fehler ziemlich einfach ist und ich schätze jede Hilfe, die Sie geben können. Vielen Dank!Ich kann ein manuell erstelltes Diagramm mit Gephi Toolkit 0.9.1 nicht korrekt anzeigen

Jason

public class BasicGraphBuild { 

public static void main(String[] args) { 
    BasicGraphBuild bscGraphBuild = new BasicGraphBuild(); 
    bscGraphBuild.script(); 
} 

public void script() { 
    ProjectController pc = 
      Lookup.getDefault().lookup(ProjectController.class); 
    pc.newProject(); 
    Workspace workspace = pc.getCurrentWorkspace(); 

    GraphModel graphModel = Lookup.getDefault() 
      .lookup(GraphController.class).getGraphModel(); 

    Node n0 = graphModel.factory().newNode("n0"); 
    n0.setLabel("Node 0"); 
    Node n1 = graphModel.factory().newNode("n1"); 
    n1.setLabel("Node 1"); 
    Node n2 = graphModel.factory().newNode("n2"); 
    n2.setLabel("Node 2"); 

    Edge e1 = graphModel.factory().newEdge(n0, n1, 0, 1.0, true); 
    Edge e2 = graphModel.factory().newEdge(n0, n2, 0, 1.0, true); 

    DirectedGraph directedGraph = graphModel.getDirectedGraph(); 
    directedGraph.addNode(n0); 
    directedGraph.addNode(n1); 
    directedGraph.addNode(n2); 
    directedGraph.addEdge(e1); 
    directedGraph.addEdge(e2); 

    // Preview configuration 
    PreviewController previewController = 
      Lookup.getDefault().lookup(PreviewController.class); 
    PreviewModel previewModel = previewController.getModel(); 
    previewModel.getProperties().putValue(PreviewProperty.EDGE_CURVED, 
      Boolean.FALSE); 
    previewModel.getProperties().putValue(PreviewProperty.DIRECTED, 
      Boolean.TRUE); 
    previewModel.getProperties().putValue(PreviewProperty.EDGE_COLOR, 
      new EdgeColor(Color.CYAN)); 
    // previewModel.getProperties().putValue(PreviewProperty.EDGE_OPACITY, 
    // 50); 
    // previewModel.getProperties().putValue(PreviewProperty.EDGE_RADIUS, 
    // 10f); 
    previewModel.getProperties().putValue(PreviewProperty.BACKGROUND_COLOR, 
      Color.WHITE); 

    // New Processing target, get the PApplet 
    G2DTarget target = (G2DTarget) previewController 
      .getRenderTarget(RenderTarget.G2D_TARGET); 
    PreviewSketch previewSketch = new PreviewSketch(target); 
    previewController.refreshPreview(); 
    previewSketch.resetZoom(); 

    // Add the applet to a JFrame and display 
    JFrame frame = new JFrame("Test Preview"); 
    frame.setLayout(new BorderLayout()); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.add(previewSketch, BorderLayout.CENTER); 

    frame.setSize(1024, 768); 
    frame.setVisible(true); 

} 

} 

>>Output of the code<<

Antwort

0

fand ich die Lösung für dieses Problem, dank der Gephi Foren. Ich musste die X- und Y-Koordinaten der Knoten so einstellen, dass sie nicht übereinander gestapelt waren. Dies wurde mit den Methoden node.setX und node.setY durchgeführt.

Verwandte Themen