I'm trying to draw a pretty simple diagram in dot.
digraph untitled { rankdir = LR; {rank=same; S; A} B -> A; B -> S; A -> A; S -> S; A -> S ; S -> A; A -> T; S -> T; }
The results I get is
I really have to change the edge from S -> S
, but I would also like to change the orientation of the arrows so they loop from left to right.
To change the orientation of any arrow, you may simply use dir=back
:
S -> S [dir=back];
But in your case this doesn't seem to be necessary... (see below)
Because of the overlap between the edge S -> S
and the A -> S
and S -> A
edges, I suggest to use only one edge between S and A with an arrowhead on both ends:
digraph g { rankdir = LR; {rank=same; S; A} B -> A -> T; B -> S -> T; A -> A; S -> S; A -> S[dir=both]; }
I don't know if it is possible to make the arrows loop from left to right. You can exercise a degree of control on the arrows by the use of the dir option eg
S->S[dir=both];
In addition you can influence the layout by changing the length of the link from S to S. You can also control the directions of (non-self referential) arrows by reversing the order the nodes are listed eg:
S->T; becomes T->S;
I have found that it nearly always produces better diagrams, the less it is constrained. I would suggest experimenting with removing the rank=same command.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With