2009-09-25 2 views
19

Ich versuche, eine bestimmte Strömung mit graphviz zu modellieren, und ich kann nicht herausfinden, wie die folgende Grafik Modell der gleichen horizontalen MittelWie erzwingen Sie alle Knoten in der gleichen Spalte in graphviz?

digraph exmp { 
    A -> B -> C -> D 
    C -> E [constraint=false] 
    A -> C [style="dotted", constraint=false] 
    A -> D [style="dotted", constraint=false] 
    B -> D [constraint=false] 
    D -> A [style="dashed", constraint=false] 
    C -> A [style="dashed", constraint=false] 


    subgraph cluster_hackToSinkIt { E -> F } 
    { rank="sink" E F } 
} 

führt dies in der folgenden Grafik zu teilen:

Meine Frage ist, wie kann ich die E -> F unter D so positioniert werden, dass es in der gleichen Spalte liegt?

+0

Das Bild ist jetzt kaputt. Ich habe versucht, es neu zu erstellen, aber ich bekomme Fehler von graphviz –

Antwort

25

Mindestens as of May 2007, können Sie nicht „Spalten“ per se, aber Sie gelten Gewicht an Kanten Kraft, die Kraft Ausrichtung helfen sollte. Aber in diesem Fall, wenn Sie nur eine unsichtbare Kante von D nach E hinzufügen, haben Sie eine vertikale Ausrichtung.

digraph exmp { 
    A -> B -> C -> D 
    C -> E [constraint=false] 
    A -> C [style="dotted", constraint=false] 
    A -> D [style="dotted", constraint=false] 
    B -> D [constraint=false] 
    D -> A [style="dashed", constraint=false] 
    C -> A [style="dashed", constraint=false] 
    D -> E [style="invis"] // <---- important new line 


    subgraph cluster_hackToSinkIt { E -> F } 
    { rank="sink" E F } 
} 

fixed dot image

Ich bin von keiner Weise bewusst Kanten auf der einen Seite zu zwingen, oder ein anderes.

+0

Ich habe die Frage über das Erzwingen der Kanten entfernt und wird eine neue Frage dafür erstellen. Sonst wäre es schwer zu beurteilen, welche Antwort die richtige Antwort wäre. –

Verwandte Themen