Pre-Scriptgraphviz - Как организовать узлы в цикле в прямоугольной компоновке?
... И только когда я закончил производство этих примеров, я увидел 'roundtrip' flow topic, который выглядит красиво. Поскольку я уже сказал это здесь, мог бы также спросить: есть ли другие альтернативы?
Оригинал Сообщение
Есть ли способ, чтобы автоматически создать узлы в прямоугольной компоновке, когда в подграфе?
В качестве примера, скажем, у меня данная структура:
digraph
{
rankdir="LR";
node [ shape="circle", style="bold, filled", fillcolor="#dddddd" ];
a -> b -> c -> d -> e -> f -> g -> h -> b;
}
Это дает диаграмму
Моей цели, чтобы они выстраиваются в прямоугольнике с рядами трех узлов, образуя
Если я пытаюсь ограничить ранг и изменить rankdir
, не как ожидалось (я предполагаю, что вы не можете изменить rankdir
подобное):
digraph
{
rankdir="LR";
node [ shape="circle", style="bold, filled", fillcolor="#dddddd" ];
a -> b -> c -> d -> e -> f -> g -> h -> b;
subgraph
{
rankdir="TB";
rank="same";
c; d; e;
}
subgraph
{
rankdir="TB";
rank="same";
f; g; h;
}
}
Если я пройти и вручную и присвоить звание выстроиться, как я желал, это работает:
digraph
{
rankdir="LR";
node [ shape="circle", style="bold, filled", fillcolor="#dddddd" ];
a -> b -> c -> d -> e -> f -> g -> h -> b;
{ rank="same"; c; h; }
{ rank="same"; d; g; }
{ rank="same"; e; f; }
}
Редактировать
Просто попробовал метод, работал Что ж. Мне нужно было открепить край самого крайнего края, чтобы он не мог сделать асимметричную форму, но в целом работал как шарм (и гораздо более интуитивно понятный)!
digraph
{
rankdir="LR";
node [ shape="circle", style="bold, filled", fillcolor="#dddddd" ];
a -> b -> c -> d -> e;
e -> f [ constraint="false" ];
b -> h -> g -> f [ dir="back" ];
}