Как заставить положение узла (х и у) в графвизе

Я пытаюсь форсировать положение узлов. У меня есть координаты x и y моих узлов и их также ориентированный граф. Я могу использовать rank=same для обработки строки (координата y), но не могу понять, как я могу обрабатывать столбец (координата x). Заранее спасибо.

2 ответа

Вы можете использовать атрибут pos ( https://www.graphviz.org/doc/info/attrs.html), например:

xxx [
    label = xxx
    pos = "0,0!"
]

yyy [
    label = yyy
    pos = "10,10!"
]

Вы также должны будете указать neato или же fdp макет двигателя, так что dot командная строка будет (для fdp):

dot -Kfdp -n -Tpng -o sample.png sample.dot

Вот пример, который я нашел:https://observablehq.com/@magjac/placing-graphviz-nodes-in-fixed-positions

По сути, для узла может быть указан атрибут позиции pos. Работает только с механизмами компоновки neato или fdp, но не с точкой.

В ! указывает, что позиция является вводом и не должна изменяться.

Я не мог получить -n флаг работы с dot -Kfdp,

Однако я смог заставить его работать с neato, используя следующую команду:

neato sample.dot -n -Tpng -o sample.png

Другие вопросы по тегам