非常に単純な図をドットで描画しようとしています。
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
から変更する必要がありますが、矢印の方向を変更して、左から右にループするようにします。
矢印の方向を変更するには、dir=back
を使用するだけです。
S -> S [dir=back];
しかし、あなたの場合、これは必要ではないようです...(以下を参照)
エッジS -> S
とA -> S
およびS -> A
エッジが重複しているため、SとAの間に両端に矢印のあるエッジを1つだけ使用することをお勧めします。
digraph g {
rankdir = LR;
{rank=same; S; A}
B -> A -> T;
B -> S -> T;
A -> A;
S -> S;
A -> S[dir=both];
}
矢印を左から右にループさせることができるかどうかはわかりません。 dirオプションを使用すると、矢印をある程度制御できます。
S->S[dir=both];
さらに、リンクの長さをSからSに変更することでレイアウトに影響を与えることができます。また、ノードがリストされている順序を逆にすることで(非自己参照)矢印の方向を制御することもできます。
S->T;
becomes
T->S;
ほとんどの場合、制約が少ないほど、より良い図が作成されることがわかりました。 rank = sameコマンドを削除してみることをお勧めします。