Изменение направления кромки в точке
Я пытаюсь нарисовать довольно простую диаграмму в точке.
digraph untitled
{
rankdir = LR;
{rank=same; S; A}
B -> A;
B -> S;
A -> A;
S -> S;
A -> S ;
S -> A;
A -> T;
S -> T;
}
Полученные результаты
![enter image description here]()
Мне действительно нужно изменить ребро из S -> S
, но я также хотел бы изменить ориентацию стрелок, чтобы они перемещались слева направо.
Ответы
Ответ 1
Чтобы изменить ориентацию любой стрелки, вы можете просто использовать dir=back
:
S -> S [dir=back];
Но в вашем случае это не кажется необходимым... (см. ниже)
Из-за перекрытия ребер S -> S
и краев A -> S
и S -> 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];
}
![graphviz output]()
Ответ 2
Я не знаю, можно ли стрелки стрелки слева направо. Вы можете осуществлять контроль над стрелками с помощью опции dir, например
S->S[dir=both];
Кроме того, вы можете влиять на макет, изменяя длину ссылки с S на S. Вы также можете управлять направлениями (несамореляционными) стрелками, изменяя порядок, в котором перечислены узлы, например:
S->T;
becomes
T->S;
Я обнаружил, что он почти всегда создает лучшие диаграммы, тем меньше он ограничен. Я бы предложил экспериментировать с удалением ранга = той же самой команды.