【问题标题】:Force the left to right order of nodes in graphviz?强制graphviz中节点的从左到右顺序?
【发布时间】:2015-07-04 01:48:30
【问题描述】:

我想使用 graphviz 绘制决策树图。

我要画的图是这样的:

我正在使用以下点语言:

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生成的节点从左到右顺序?此外,就决策树而言,即使从左到右的顺序不同,这两棵树是否完全相同?

【问题讨论】:

  • 你使用什么语言?
  • @TimBiegeleisen 嗨,蒂姆,我只是在手动编写 .gv 文件。

标签: graph graphviz decision-tree graph-visualization


【解决方案1】:

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

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 网站上有一个forum post about this problem,如果有机会可以看看。

【讨论】:

    【解决方案2】:

    请注意因为标题中的“从左到右”而点击此帖子的任何人。 @marapet 有一个很好的答案 to this post 指出外观顺序不会保留布局。如果您发现在图表中的某个点建立了左右布局,然后被后续边打破,请尝试在后续边中添加constraint=false,以防止它们改变现有的左右布局。

    【讨论】:

      猜你喜欢
      • 2016-11-24
      • 1970-01-01
      • 2012-12-16
      • 1970-01-01
      • 2010-12-03
      • 1970-01-01
      • 2021-02-20
      • 2016-03-17
      • 2022-01-13
      相关资源
      最近更新 更多