40

我正在尝试使用点显示从右到左(即向后)的边缘:

C <- A -> B

我能做的最好的事情是:

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

..这很好,除了我不喜欢c -> a在边缘指向另一个方向时使用。

所以我想分享这个解决方案(在 SO 上似乎没有提到)并检查我是否遗漏了一些明显的东西。

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

4

2 回答 2

53

我没有替代你使用 dir 的方法,但我可以让它稍微短一些,如果你想要水平对齐,使用 graph 的rankdir属性,强制从左到右的方向。

digraph {
  rankdir=LR;
  a->b;
  c->a [dir="back"];
}
于 2009-11-06T10:13:05.437 回答
9

默认情况下使边缘向后指向:

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

然后,覆盖默认指向前向:

c -> d [dir="forward"];
于 2013-07-20T17:25:49.267 回答