26

我正在尝试在点中绘制一个非常简单的图表。

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,但我也想改变箭头的方向,使它们从左到右循环。

4

2 回答 2

58

要更改任何箭头的方向,您可以简单地使用dir=back

S -> S [dir=back];

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

由于边缘S -> SA -> 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];
}

图形输出

于 2011-03-24T22:08:23.243 回答
3

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

S->S[dir=both];

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

S->T;
becomes
T->S;

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

于 2011-03-24T19:47:25.927 回答