点到右边到左边(Graphviz)

时间:2009-10-02 17:10:07

标签: graphviz right-to-left graph-drawing

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

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

2 个答案:

答案 0 :(得分:38)

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

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

答案 1 :(得分:7)

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

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

然后,覆盖默认值以指向前方:

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