首页 > 解决方案 > graphviz:使节点排名独占

问题描述

这是Graphviz 的一个简单示例:使边不影响节点的层次结构

digraph G {
    a -> b
    a -> c
    c -> d
    c -> e
    a -> f
    c -> f
    { rank=same; c f }
}

答案b,c,f的排名都相同,即使它只指定了{ rank=same; c f }

我的问题是:有没有办法让排名只有cf

我在指定时遇到问题,{rank=same;989;988;952;953;950;951;}但其他节点显示在同一等级中。有什么技巧可以使排名独占吗?

标签: nodesgraphvizrank

解决方案


我认为不可能使排名独占,但您可以手动从排名中剔除不需要的节点。

点规则是当你用一条边连接两个节点时,头节点通常会增加它的等级(除非它的位置受到其他边的影响)。

所以你在你的情况下可以做什么:将不需要的节点连接到你的“独占”等级中的一个节点,并使这条边不可见:

digraph G {
    a -> b
    a -> c
    c -> d
    c -> e
    a -> f
    c -> f
    { rank=same; c f }
    b -> c [style=invis]
}

结果:

在此处输入图像描述


推荐阅读