Kann ich ein Flussdiagramm (kein Baumdiagramm) mit D3.js erstellen
kann ich erstellen Sie eine flowchart wie diese:
ausgehend von einem json-Objekt mit den D3.js Bibliothek?
Was sollte der json-Struktur Aussehen?
Hast du irgendein Beispiel, kann ich analysieren?
Danke Ihnen sehr.
Kommentar zu dem Problem - Öffnen
Die JSON-Struktur ist wirklich völlig bis zu Ihnen. Soweit ich weiß, gibt es keine Beispiele von flow-charts mit D3.
"D3.js eignet sich nicht sehr gut für diese Art der Visualisierung." genau, Suchen nach "Javascript Flow Chart"
InformationsquelleAutor der Frage Dino | 2014-03-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Meiner bescheidenen Meinung nach D3.js eignet sich nicht sehr gut für diese Art der Visualisierung. Die Visualisierung ist einfach zu Komplex, um eine einfache Zuordnung von Daten zu SVG (und das ist es, was D3.js ist hauptsächlich für: die Generierung von DOM (Dokumente) Daten, die durch prägnante Zuordnungen).
Können Sie arbeiten, um diese Einschränkungen durch die Einführung von mehr Logik in zwischen so, dass die Daten nicht direkt angezeigt werden, sondern eher ein Modell erstellt wird, werden einige Berechnungen durchgeführt und dann das Ergebnis verwandelt sich das SVG-Format von D3. Dies ist, was dagre zu tun versucht, und es funktioniert ziemlich gut.
Aber Ihr graph hat einige spezielle Einschränkungen, die derzeit nicht unterstützt werden durch einfachere Implementierungen, die layout-Algorithmus: In der letzten Ebene erhalten Sie einen Gabel-wie rendering. In der "Entscheidung"-Schicht weisen Sie Einschränkungen auf die Kanten, damit Sie verlassen an der Links und rechts von den Knoten, die Sie auch eine Erschwernis für die Entscheidung-Knoten werden auf derselben Ebene.
Alle diese Informationen sind nicht sichtbar in der Grafik-Struktur selbst. Dafür brauchen Sie zu kommentieren, die Informationen in Ihr Modell und sagen Sie den layout-Algorithmus zu Ehren diese Einschränkungen. Zu den besten meines Wissens nur kommerzielle graph-drawing library-Implementierungen unterstützen derzeit diese erweiterte layout-Funktionen.
yFiles for HTML ist wie eine Bibliothek: In diese demo Sie können mit dem folgenden JSON um ein Ergebnis zu bekommen wie diese:
Wechseln Sie auf das combobox-Eintrag oben: "5 - Komplexe Objekte + Edge-Labels"
, Und ändern Sie die JSON-in den Quellen-Knoten, Kanten-Quell-und Node-Vorlage Abschnitte wie folgt:
Knoten Quelle
Edge Quelle
Vorlage
Beachten Sie, dass die Verwendung einer anderen Art von JSON ist möglich, auch (wie die demo zeigt). Ich glaube nicht, dass das JSON-format ist ein problem in irgendeiner Weise und wie Sie sehen können, bekommen ein ordentliches Ergebnis, aber immer noch die Einschränkungen, die ich erwähnt habe, nicht berücksichtigt worden sind und Hinzugefügt, um die JSON. Leider ist das hinzufügen von diesen Einschränkungen nicht durch das demo-interface, das ich verwende oben rechts jetzt, aber muss getan werden, durch hinzufügen von code, um den eigentlichen Quellcode der demo. Sie können sehen, wie diese Einschränkungen in einer anderen demo (allerdings ohne die JSON) in dieses interaktive layout-demo.
Setzen alle bits und Stücke zusammen, können Sie leicht erreichen diese Art von Ergebnis, automatisch:
Gleiches Beispiel gefunden und ausprobiert interaktiv in diesem interaktive Flussdiagramm layout demo.
Haftungsausschluss: ich arbeite für die Firma, die erstellt wird, die Bibliothek aber auf SO/SE I repräsentieren nicht mein Arbeitgeber. Meine Beiträge sind meine eigenen.
InformationsquelleAutor der Antwort Sebastian
kann ich erstellen Sie eine flowchart wie diesem?
D3 ist in der Lage, es zu tun.
, ausgehend von einem json-Objekt mit den D3.js Bibliothek?
Ja
Was sollte der json-Struktur Aussehen?
Hängt davon ab, wie Sie Ansatz das Projekt. Ich bin mit force-layout und entfernen der Kraft, so dass meine JSON ist
Hast du irgendein Beispiel, kann ich analysieren?
Für Ihre inspiration
Ausgangspunkt https://github.com/mbostock/d3/wiki/Force-Layout
wie wickeln Sie Ihren text im block http://bl.ocks.org/mbostock/7555321
D3.js eignet sich nicht sehr gut für diese Art der Visualisierung. Die Visualisierung ist einfach zu Komplex, um eine einfache Zuordnung von Daten zu SVG
Nicht sicher, warum, aber IMO Flussdiagramme sind eine der einfachsten Arten von Grafiken, von Blöcken und Linien, die Sie verbinden. D3 gebaut hat-in bedeutet, zu zeichnen, Knoten und Anschlüssen. Ja, die ist nicht out of the box, ready to use-Lösung. Aber alles, was Sie tun müssen, ist lernen und sich anpassen.
InformationsquelleAutor der Antwort Edmund Sulzanok
Ich denke, das gibt Ihnen was Sie brauchen:
http://www.daviddurman.com/automatic-graph-layout-with-jointjs-and-dagre.html
InformationsquelleAutor der Antwort Simon
Habe ich gesucht, in diesem heute und flowchart.js sieht vielversprechend aus. Es unterstützt start-und end-Punkte, Vorgänge und Bedingungen. Sie können Steuern, welche Seite der gezeichneten Elemente, die Linien kommen aus usw.
http://adrai.github.io/flowchart.js/
InformationsquelleAutor der Antwort Devon Holcombe