Как заставить положение узла (х и у) в графвизе
Я пытаюсь форсировать положение узлов. У меня есть координаты 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