2009-10-02 11 views
24

Ich versuche Kanten von rechts (dh rückwärts) mit Punkt nach links gehen anzuzeigen:rechts nach links Kanten in Punkt (Graphviz)

C <- A -> B 

Das Beste, was ich tun konnte, war:

digraph { 
    a -> b; 
    c -> a [dir="back"]; 
    {rank=same;c a b} 
} 

.. was ist in Ordnung, außer ich mag nicht c -> a verwenden, wenn die Kante in die andere Richtung gerichtet ist.

Also wollte ich diese Lösung teilen (die auf SO anscheinend nicht erwähnt wurde) und prüfen, ob mir etwas offensichtlich fehlt.

See: http://www.graphviz.org/doc/info/attrs.html#k:dirType

+0

Dies löst nicht das Problem, dass der Rang des Knoten denn die ac-Kante ist immer noch nicht relativ zum Graphen umgekehrt, es sei denn, du schreibst es 'c -> a'. Ich wünschte, man könnte einfach 'a <- c' schreiben. : / – Evi1M4chine

Antwort

32

Ich habe keine Alternative zu Ihrer Nutzung von dir, aber ich kann es etwas kürzer machen, wenn Sie die horizontale Ausrichtung wollen, verwenden Sie die rankdir Eigenschaft Graph, Richtung zu zwingen, von links nach rechts.

digraph { 
    rankdir=LR; 
    a->b; 
    c->a [dir="back"]; 
} 
4

Um Kanten standardmäßig Punkt rückwärts zu machen:

digraph { 
    edge [dir="back"]; 
    a -> b; 
    c -> a; 
} 

Dann überschreibt den Standard nach vorne zeigen:

c -> d [dir="forward"];