Welches der Open-Source-Java-Graph-Zeichnungsframeworks für ein Netzwerkdiagramm mit den folgenden Anforderungen? Der Graph wird weniger als 1000 Knoten haben.Vergleichen von Open-Source-Java-Graph-Zeichnungsframeworks (JUNG und Prefuse) zum Zeichnen der Netzwerktopologie
1) weist parallele Kanten
2) gerichteten und ungerichteten Kanten innerhalb eines einzigen Graphen
3) durch Bilder mit Knoten
4) Interaktion mit dem Benutzer dargestellt Knoten und Kanten
5) dynamisch Hinzufügen/Knoten und Kanten Löschen
6) Mehrfachbeschriftung an Knoten und Kanten, verschiedene Ebenen der Beschriftung können von Benutzern ein-/ausgeschaltet werden. (wie Zeichnen in Schichten und Ein-/Ausschalten einer Schicht)
7) verschiedene Layoutalgorithmen zur Darstellung von Stern-, Ring-, Gittertopologien
Ich bewerte JUNG und Prefuse. Das habe ich für jede meiner Anforderungen gefunden.
1) Prefuse kann keine parallelen Kanten anzeigen, während JUNG dies unterstützt. Kann der Code vor der Eingabe manipuliert werden, um parallele Kanten anzuzeigen? Da dies grundlegende Änderungen der Datenebene mit sich bringt, wäre dies meiner Ansicht nach schwieriger, als wenn sich das übliche benutzerdefinierte Rendering ändert.
2) Ich habe keinen Verweis auf kombinierte Graphen (sowohl gerichtete als auch ungerichtete Kanten) sowohl in der Vorsicherung als auch in JUNG gefunden. Weiß jemand etwas anderes?
3) Das scheint einfach mit beiden Prefuse und JUNG
4) Wieder beide prefuse und JUNG bietet Unterstützung für die Interaktion mit dem Benutzer.
5) Sowohl Vorsicherung als auch JUNG unterstützen dies. Wie funktioniert jedes Framework beim Neuzeichnen des Graphen? Ich sah in einem anderen Beitrag, dass Vorfusion nicht gut für dynamische Updates funktioniert (Prefuse Toolkit: dynamically adding nodes and edges)
6) Dies kommt auf die Änderung der Grafik und neu zeichnen es. So wird die Frage gleich wie 5)
7) Sowohl JUNG und Vorsicherung hat mehrere Layout-Algorithmen. Aber wenn ich versuchte, den gleichen Datensatz mit FruchtermanReingoldLayout sowohl in JUNG als auch in Prefuse anzuzeigen, erhalte ich unterschiedliche Darstellungen. Irgendwelche Ideen warum? Irgendwie scheinen die Layout-Algorithmen in Prefuse besser zu sein als in JUNG (Rendering ist auch besser, denke ich), obwohl die meisten Layout-Algorithmen in Prefuse auf der JUNG-Implementierung basieren. Prefuse-Layouts wie ForceDirectedLayout/FruchtermanReingoldLayout und CircleLayout werden direkt Stern-, Kreis- und Netztopologien zugeordnet.
Außerhalb dieser Anforderungen hat Prefuse gute Unterstützung für Ausdrücke und Abfragesprache, aber es sieht so aus, als ob es nicht aktiv entwickelt wurde, wie JUNG. Welcher hat eine bessere Visualisierung? Irgendwelche Vorschläge, welche geeignet sein werden und wie die Mängel überwunden werden können?
Alle anderen Frameworks, die ich verwenden kann?
+1 für diese . Ich mag die Tatsache, dass Sie eine Menge Vorarbeit geleistet haben, um zwei Möglichkeiten zu evaluieren und Ihre Ergebnisse zu präsentieren. Es gibt viel Wert hier für andere außer Ihrer Frage. Dies könnte die beste "erste Frage" für einen neuen Benutzer sein, die ich in zwei Jahren hier gesehen habe. Ich würde es mehr geben, wenn ich könnte. – duffymo