Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在graphviz中强制从左到右的节点顺序?_Graph_Graphviz_Decision Tree_Graph Visualization - Fatal编程技术网

在graphviz中强制从左到右的节点顺序?

在graphviz中强制从左到右的节点顺序?,graph,graphviz,decision-tree,graph-visualization,Graph,Graphviz,Decision Tree,Graph Visualization,我想用graphviz画一个决策树图 我要绘制的图形如下所示: 我使用的是以下dot语言: graph a { A [shape=box; label="A"] B [shape=box; label="B"] al [shape=none; label="0"] bl [shape=none; label="1"] br [shape=none; label="0"] A -- al [label="0"]; A -- B [label="1"]; B --

我想用graphviz画一个决策树图

我要绘制的图形如下所示:

我使用的是以下dot语言:

graph a {
  A [shape=box; label="A"]
  B [shape=box; label="B"]
  al [shape=none; label="0"]
  bl [shape=none; label="1"]
  br [shape=none; label="0"]

  A -- al [label="0"];
  A -- B [label="1"];
  B -- bl [label="0"];
  B -- br [label="1"];

}
但是,我的结果图如下所示:


如何强制graphviz生成的节点从左到右的顺序?此外,就决策树而言,即使从左到右的顺序不同,这两棵树是否完全相同?

要解决此问题,您只需更改
B
al
节点的顺序:

graph a {
  A [shape=box; label="A"]
  al [shape=none; label="0"]
  B [shape=box; label="B"]
  bl [shape=none; label="1"]
  br [shape=none; label="0"]

  A -- al [label="0"];
  A -- B [label="1"];
  B -- bl [label="0"];
  B -- br [label="1"];
}

顺便说一句,graphviz网站上有一个标题,如果有机会,你可以看一下。

请注意,任何点击这篇文章的人,因为标题是“从左到右”@marapet有一个很好的答案,注意到外观的顺序并不能保持布局。如果您发现在图表中的某个点建立了左右布局,然后被后续边打断,请尝试向后续边添加
constraint=false
,以防止它们更改现有的l-r布局。

您使用的是什么语言?@TimBiegeleisen Hi Tim,我只是手工编写.gv文件。