Как принудительно поместить все узлы в один столбец в graphviz?
Вопрос
Я пытаюсь смоделировать определенный поток с помощью 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 таким образом, чтобы он находился в том же столбце?
Решение
По крайней мере по состоянию на май 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 }
}
Я не знаю ни о каком способе сдвинуть края в ту или иную сторону.
Не связан с StackOverflow