Bibliothek zur Visualisierung von Graphen in JavaScript
Ich habe eine Datenstruktur, die einen gerichteten Graphen darstellt, und ich möchte, dass dynamisch auf einer HTML-Seite zu rendern. Diese Graphen werden in der Regel nur ein paar Knoten, vielleicht zehn am oberen Ende, so meine Vermutung ist, dass die Leistung isn & #39; t gehen, um eine große Sache sein. Idealerweise möchte ich in der Lage sein, es in mit jQuery Haken, so dass Benutzer das Layout manuell durch Ziehen der Knoten um zwicken können.
Hinweis: Ich bin nicht auf der Suche nach einer Charting-Bibliothek.
525
3
Ich habe gerade das zusammengestellt, wonach Sie vielleicht suchen: http://www.graphdracula.net Es ist JavaScript mit gerichteten Graphen, SVG und man kann sogar die Knoten herumziehen. Es muss noch etwas optimiert werden, ist aber durchaus brauchbar. Sie erstellen Knoten und Kanten einfach mit JavaScript-Code wie diesem:
Ich habe die bereits erwähnte Raphael JS-Bibliothek (das Graffle-Beispiel) sowie etwas Code für einen Force-basierten Graph-Layout-Algorithmus verwendet, den ich im Netz gefunden habe (alles Open Source, MIT-Lizenz). Wenn Sie irgendwelche Anmerkungen haben oder eine bestimmte Funktion benötigen, kann ich sie implementieren, fragen Sie einfach!
Vielleicht möchten Sie auch einen Blick auf andere Projekte werfen! Unten sind zwei Meta-Vergleiche:
Reine JavaScript-Bibliotheken
Kommerzielle Bibliotheken
Verlassene Bibliotheken
Nicht-Javascript-Bibliotheken
JsVIS war ziemlich gut, aber langsam bei größeren Graphen, und wird seit 2007 nicht mehr eingesetzt.
prefuse ist eine Reihe von Software-Tools zur Erstellung interaktiver Datenvisualisierungen in Java. flare ist eine ActionScript-Bibliothek zur Erstellung von Visualisierungen, die im Adobe Flash Player ausgeführt werden können, und wird seit 2012 nicht mehr weiterentwickelt.
Wie guruz erwähnte, bietet die JIT mehrere schöne Graphen-/Baum-Layouts, einschließlich recht ansprechender RGraph- und HyperTree-Visualisierungen.
Außerdem habe ich gerade eine super einfache SVG-basierte Implementierung auf github (keine Abhängigkeiten, ~125 LOC), die gut genug für kleine Graphen in modernen Browsern funktionieren sollte.