Graphviz 图形绘制软件,考虑节点和边的相对顺序

Graphviz 图形绘制软件,考虑节点和边的相对顺序,graphviz,dot,graph-layout,Graphviz,Dot,Graph Layout,我正在为一组给定的节点和边生成一个(GraphViz)“dot”文件。节点按y维排列,秩=相同,在秩内按x维排列。边将按照绘制顺序进行排序。不幸的是,“点”不遵守x维中的顺序。如果可以的话,我将实现平面有向图的无交叉布局。不管它们是循环的,还是非循环的 我的问题是: 我如何告诉“点”尊重节点和边的相对顺序 是否有“点”的替代品,它尊重相对顺序,即接受布局并进行物理渲染 很抱歉,无法上载点文件 非常感谢。我认为“rank=same;0;8;”暗指与“rank=same;0->8[style=in

我正在为一组给定的节点和边生成一个(GraphViz)“dot”文件。节点按y维排列,秩=相同,在秩内按x维排列。边将按照绘制顺序进行排序。不幸的是,“点”不遵守x维中的顺序。如果可以的话,我将实现平面有向图的无交叉布局。不管它们是循环的,还是非循环的

我的问题是:

  • 我如何告诉“点”尊重节点和边的相对顺序
  • 是否有“点”的替代品,它尊重相对顺序,即接受布局并进行物理渲染
  • 很抱歉,无法上载点文件

    非常感谢。我认为“rank=same;0;8;”暗指与“rank=same;0->8[style=invis];”相同。 无论如何,我关心的不是交叉口。这似乎是一个bug,因为还有足够的地方(6)和(2)来画一条线。一个人必须把所有的东西都往右移一点。 我的算法生成一个顺序,这样每个树(绿色)边可以向下/向右绘制,每个交叉(橙色)边可以向下/向左绘制,每个背面(红色)边可以向上/向左绘制。如果图形是平面的,则没有交叉。为了实现这一点,必须将(8)绘制到(0)的右侧。我真的很高兴,因为如果我使用你的技术,这种情况就会发生

    digraph {
        graph [charset=latin1, size ="19,46, 11,12"]
        node [shape=box, fontname="Comic Sans MS", fontsize=8, height=0.2, width=0.2, ordering=out]
    { rank=same; 0 -> 8 [style=invis]; }
    { rank=same; 1; }
    { rank=same; 2; }
    { rank=same; 5 -> 9; [style=invis]; }
    { rank=same; 6 -> 7 -> 10; [style=invis]; }
    { rank=same;3; }
    { rank=same;4; }
    0 -> 1 [color=green]
    1 -> 2 [color=green]
    8 -> 2 [color=orange]
    2 -> 5 [color=green]
    5 -> 6 [color=green]
    6 -> 2 [color=red, tailport=w, headport=w]
    5 -> 7 [color=green]
    7 -> 4 [color=green]
    2 -> 3 [color=green]
    2 -> 9 [color=green]
    9 -> 10 [color=green]
    10 -> 3 [color=orange]
    3 -> 4 [color=orange]
     }
    
    而且它的布局也非常感谢。我认为“rank=same;0;8;”暗指与“rank=same;0->8[style=invis];”相同。 无论如何,我关心的不是交叉口。这似乎是一个bug,因为还有足够的地方(6)和(2)来画一条线。一个人必须把所有的东西都往右移一点。 我的算法生成一个顺序,这样每个树(绿色)边可以向下/向右绘制,每个交叉(橙色)边可以向下/向左绘制,每个背面(红色)边可以向上/向左绘制。如果图形是平面的,则没有交叉。为了实现这一点,必须将(8)绘制到(0)的右侧。我真的很高兴,因为如果我使用你的技术,这种情况就会发生

    digraph {
        graph [charset=latin1, size ="19,46, 11,12"]
        node [shape=box, fontname="Comic Sans MS", fontsize=8, height=0.2, width=0.2, ordering=out]
    { rank=same; 0 -> 8 [style=invis]; }
    { rank=same; 1; }
    { rank=same; 2; }
    { rank=same; 5 -> 9; [style=invis]; }
    { rank=same; 6 -> 7 -> 10; [style=invis]; }
    { rank=same;3; }
    { rank=same;4; }
    0 -> 1 [color=green]
    1 -> 2 [color=green]
    8 -> 2 [color=orange]
    2 -> 5 [color=green]
    5 -> 6 [color=green]
    6 -> 2 [color=red, tailport=w, headport=w]
    5 -> 7 [color=green]
    7 -> 4 [color=green]
    2 -> 3 [color=green]
    2 -> 9 [color=green]
    9 -> 10 [color=green]
    10 -> 3 [color=orange]
    3 -> 4 [color=orange]
     }
    
    以及它的布局