【问题标题】:Changing edge direction in dot改变点的边缘方向
【发布时间】:2011-07-22 10:13:58
【问题描述】:

我正在尝试用点画一个非常简单的图表。

digraph untitled
    {
    rankdir = LR;
    {rank=same; S; A}
    B -> A;
    B -> S;
    A -> A;
    S -> S;
    A -> S ;
    S -> A;
    A -> T;
    S -> T;
}

我得到的结果是

我确实必须从S -> S 更改边缘,但我还想更改箭头的方向,使它们从左到右循环。

【问题讨论】:

    标签: graphviz dot


    【解决方案1】:

    我不知道是否可以让箭头从左到右循环。您可以使用 dir 选项对箭头进行一定程度的控制,例如

    S->S[dir=both];
    

    此外,您可以通过将链接的长度从 S 更改为 S 来影响布局。您还可以通过反转节点的列出顺序来控制(非自引用)箭头的方向,例如:

    S->T;
    becomes
    T->S;
    

    我发现它几乎总是能产生更好的图表,它受到的约束越少。我建议尝试删除 rank=same 命令。

    【讨论】:

      【解决方案2】:

      要更改任何箭头的方向,您只需使用dir=back

      S -> S [dir=back];
      

      但在你的情况下,这似乎没有必要......(见下文)

      由于S -> S 边与A -> SS -> A 边之间的重叠,我建议在S 和A 之间仅使用一条边,两端带有箭头:

      digraph g {
          rankdir = LR;
          {rank=same; S; A}
          B -> A -> T;
          B -> S -> T;
          A -> A;
          S -> S;
          A -> S[dir=both];
      }
      

      【讨论】:

      • 有没有办法让S -> S箭头出现在S的底部?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-20
      • 2011-01-20
      • 1970-01-01
      • 1970-01-01
      • 2020-09-26
      相关资源
      最近更新 更多