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);
}
}