如何控制GraphViz中的节点位置

如何控制GraphViz中的节点位置,graph,tree,graphviz,Graph,Tree,Graphviz,我有下面的图表 我想将最后一行作为f20 f21 f22 f23,以便边缘f21-f11和f22-f10相互交叉。基本上,这棵树将向下生长得更多,我需要将所有节点按相同的顺序排列(f20 f21 f22 f23)您可以通过使用 不可见边和 约束为false的边 我在应该交叉的边上添加了constraint=false,以免它们影响布局。然后需要另外两条不可见的边来让布局引擎将节点放置在正确的位置-f21应位于f10下,而f22应位于f11下 digraph G { dir="back";

我有下面的图表

我想将最后一行作为f20 f21 f22 f23,以便边缘f21-f11和f22-f10相互交叉。基本上,这棵树将向下生长得更多,我需要将所有节点按相同的顺序排列(f20 f21 f22 f23)

您可以通过使用

  • 不可见边
  • 约束为false的边
我在应该交叉的边上添加了
constraint=false
,以免它们影响布局。然后需要另外两条不可见的边来让布局引擎将节点放置在正确的位置-
f21
应位于
f10
下,而
f22
应位于
f11

digraph G {
  dir="back";
  f00 -> f10[dir="back"];
  f00 -> f11[dir="back"];
  f10 -> f20[dir="back"];

  // invisible edges for the layout
  f11 -> f22[style=invis];
  f10 -> f21[style=invis];

  // crossing edges without constraint
  f10 -> f22[dir="back", constraint=false];
  f11 -> f21[dir="back", constraint=false];

  f11 -> f23[dir="back"];
}

对于较大的结果,我如何防止这种情况?tinyurl.com/gvizavnYou可以始终是显式的,并将节点约束到相同的秩tinyurl.com/he7ynkh