Как заставить все узлы в одном столбце в графвизе?
Я пытаюсь смоделировать определенный поток с помощью GraphViz, и я не могу понять, как смоделировать следующий график, чтобы разделить тот же горизонтальный центр
digraph exmp {
A -> B -> C -> D
C -> E [constraint=false]
A -> C [style="dotted", constraint=false]
A -> D [style="dotted", constraint=false]
B -> D [constraint=false]
D -> A [style="dashed", constraint=false]
C -> A [style="dashed", constraint=false]
subgraph cluster_hackToSinkIt { E -> F }
{ rank="sink" E F }
}
это приводит к следующему графику:
Мой вопрос: как я могу расположить E -> F под D так, чтобы он лежал в одном столбце?
1 ответ
Решение
По крайней мере, по состоянию на май 2007 года вы не можете использовать "столбцы" как таковые, но вы можете применить вес к краям, что должно помочь принудительно выровнять Но на самом деле, в этом случае, если вы просто добавите невидимое ребро из D в E, вы получите вертикальное выравнивание.
digraph exmp {
A -> B -> C -> D
C -> E [constraint=false]
A -> C [style="dotted", constraint=false]
A -> D [style="dotted", constraint=false]
B -> D [constraint=false]
D -> A [style="dashed", constraint=false]
C -> A [style="dashed", constraint=false]
D -> E [style="invis"] // <---- important new line
subgraph cluster_hackToSinkIt { E -> F }
{ rank="sink" E F }
}
Я не знаю ни о каком способе заставить края в ту или иную сторону.