Nickolay
Nickolay

Reputation: 32063

Right to left edges in dot (Graphviz)

I'm trying to display edges going from right to left (i.e. backwards) using dot:

C <- A -> B

The best I could do was:

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

..which is fine, except I don't like using c -> a when the edge is directed the other way.

So I wanted to share this solution (which didn't seem to be mentioned on SO) and check if I'm missing something obvious.

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

Upvotes: 44

Views: 35229

Answers (2)

Roger Dahl
Roger Dahl

Reputation: 15734

To make edges point backwards by default:

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

Then, override the default to point forwards:

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

Upvotes: 10

user204683
user204683

Reputation:

I have no alternative to your usage of dir, but i can make it slightly shorter, if you want horizontal alignment, use the rankdir property of graph, to force direction from left to right.

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

Upvotes: 62

Related Questions