Baum / Dendrogramm mit Winkelstücken in d3

8

Ich bin sehr neu bei d3.js (und SVG im Allgemeinen), und ich möchte etwas Einfaches tun: ein Baum / Dendrogramm mit gewinkelten Konnektoren.

Ich habe das d3-Beispiel von hier aus kannibalisiert: Ссылка und ich möchte es mehr wie die protovis Beispiele hier machen:

Ich habe hier einen Anfang gemacht: Ссылка und ich denke, es ist der folgende Ausschnitt, der falsch ist:

%Vor%

Allerdings gibt es keinen offensichtlichen Ersatz, ich könnte d3.svg.line verwenden, aber ich weiß nicht, wie ich es richtig integrieren soll, und idealerweise hätte ich gerne einen Ellenbogenstecker ... obwohl ich mich frage, ob ich den falsche Bibliothek dafür, da viele der d3-Beispiele, die ich gesehen habe, die Gravitationskraft verwenden, um Graphen von Objekten anstelle von Bäumen zu erstellen.

    
James B 20.04.2012, 14:02
quelle

1 Antwort

23

Ersetzen Sie die Funktion diagonal durch einen benutzerdefinierten Pfadgenerator, indem Sie die "H" und "V" von SVG verwenden Pfadbefehle .

%Vor%

Beachten Sie, dass die Koordinaten von Quelle und Ziel ( x und y ) vertauscht sind. In diesem Beispiel wird das Layout mit einer horizontalen Ausrichtung angezeigt. Das Layout verwendet jedoch immer dasselbe Koordinatensystem: x ist die Breite des Baums und y ist die Tiefe des Baums . Wenn Sie also den Baum mit den (untersten) Blattknoten am rechten Rand anzeigen möchten, müssen Sie x und y austauschen. Das ist, was die Projektionsfunktion der Diagonale tut, aber in der obigen Ellbogen-Implementierung habe ich das Verhalten nur hart-codiert, anstatt eine konfigurierbare Funktion .

Wie in:

%Vor%

Und ein funktionierendes Beispiel:

mbostock 20.04.2012, 16:10
quelle

Tags und Links