graphviz - 如何理解graphviz点边和节点行为?

标签 graphviz dot

来自此图表:

digraph G {

a0 -> a1 -> a2;
x0 -> x1;
b0 -> b1 -> b2;

}

给出了这个图形表示:

a 0    x 0    b 0
 |      |      |
a 1    x 1    b 1
 |             |
a 2           b 2

我想将 a2 连接到 x1,将 x1 连接到 b2。

所以我尝试了:

digraph G {

a0 -> a1 -> a2;
x0 -> x1;
b0 -> b1 -> b2;

a2 -> x1 [constraint=false];
x1 -> b2 [constraint=false];

}

我的期望是这样的:

a 0    x 0    b 0
 |      |      |
a 1    x 1    b 1
 |  /       \  |
a 2           b 2

但不幸的是它是这样渲染的,我不知道为什么。

a 0    b 0    x 0
 |      |      |
 |      |      |
 |      |      |
a 1    b 1    x 1
 |      | _ / / 
 |      +    / 
 |  _/   |  /  
a 2    b 2

我怎样才能更好地理解为什么会这样,并帮助我将 x0 -> x1 保持在图表的中间?

最佳答案

添加{rank=same; a0 -> x0 -> b0 [style=invis];} 到您的图表中给出所需的结果 - 这会强制顶部节点按特定顺序排列,但会隐藏为此添加的边。然而,我完全不知道为什么这是必要的。

enter image description here

关于graphviz - 如何理解graphviz点边和节点行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50888439/

相关文章:

python - 如何在sphinx中为python创建调用者图?

GraphViz 点文件。节点作为国际象棋顺序

c++ - 在没有系统命令的情况下使用 graphviz 和 C++ 生成 png 格式的多个图形

java - Scala - 在特定场景下无法通过终端执行进程

GraphViz 节点放置和 Rankdir

graphviz - 使用 GraphViz 绘制扩展形式的游戏

python - Graphviz:如何插入两个新的链接节点并最小化边交叉?

graphviz: "same"周围的虚线框 - 分组框

doxygen - 从 doxygen 获取类层次结构点文件

java - 氧点。通过注解绘制类之间的链接