我试图强制节点的位置。我有我的节点的x和y坐标及其有向图。我可以使用rank = same来处理行(y坐标),但无法弄清楚我如何处理列(x坐标)。
答案 0 :(得分:56)
您可以使用 pos 属性(https://www.graphviz.org/doc/info/attrs.html#d:pos),例如:
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
答案 1 :(得分:1)
这是我发现的一个示例: https://observablehq.com/@magjac/placing-graphviz-nodes-in-fixed-positions
基本上,可以为节点指定位置属性“ pos”。仅适用于neato或fdp布局引擎,不适用于点。
!
表示该位置是输入内容,不应更改。
答案 2 :(得分:0)
我无法将dot -Kfdp
标记与neato sample.dot -n -Tpng -o sample.png
一起使用。
然而,我能够使用以下命令使用neato:
public static function getInstance($controller){
if(!isset(self::$_instance)){
self::$_instance = new $controller;
}
return self::$_instance;
}