Графвиз - размещение узлов по горизонтали
У меня есть следующий файл graphviz. Прямо сейчас краевые метки расположены на горизонтальной линии, но я хочу, чтобы узлы были размещены на горизонтальной линии. Как мне этого добиться?
digraph finite_state_machine {
node [shape = doublecircle]; q_5;
node [shape = circle];
q_1 -> q_2 [ label = "." ];
q_1 -> q_2 [ label = "\epsilon" ];
q_2 -> q_1 [ label = "\epsilon" ];
q_2 -> q_3 [ label = "a" ];
q_3 -> q_4 [ label = "^\wedge a" ];
q_3 -> q_4 [ label = "\epsilon" ];
q_4 -> q_3 [ label = "\epsilon" ];
q_4 -> q_5 [ label = "b" ];
}
Вот как это выглядит в настоящее время:
1 ответ
Решение
Вы можете использовать rank=same
заставить одинаковый ранг для всех узлов:
digraph finite_state_machine {
{
rank=same;
node [shape = doublecircle]; q_5;
node [shape = circle];
q_1 -> q_2 [ label = "." ];
q_1 -> q_2 [ label = "\epsilon" ];
q_2 -> q_1 [ label = "\epsilon" ];
q_2 -> q_3 [ label = "a" ];
q_3 -> q_4 [ label = "^\wedge a" ];
q_3 -> q_4 [ label = "\epsilon" ];
q_4 -> q_3 [ label = "\epsilon" ];
q_4 -> q_5 [ label = "b" ];
}
}