Graphviz节点秩=在(x)之后

Graphviz节点秩=在(x)之后,graphviz,Graphviz,有没有一种方法可以使一个节点位于另一个节点之后,但不使用该方法?同样的约束对图形有很大的影响,但之后会给它更多的自由度 在这个例子中,我不在乎x的秩是否与d相同,只在乎它在c之后 以前曾提出过类似的问题,但没有得到回答: 子图可以用作分组策略,但我已经在使用子图了。我不认为一个节点可以同时处于两个节点中 digraph G { rankdir=LR a->b->c->d a->x->y subgraph cluster_after

有没有一种方法可以使一个节点位于另一个节点之后,但不使用该方法?同样的约束对图形有很大的影响,但之后会给它更多的自由度

在这个例子中,我不在乎x的秩是否与d相同,只在乎它在c之后

以前曾提出过类似的问题,但没有得到回答:

子图可以用作分组策略,但我已经在使用子图了。我不认为一个节点可以同时处于两个节点中

digraph G {
    rankdir=LR
    a->b->c->d
    a->x->y
    subgraph cluster_after{
        x; d; y;
    }
}

这两种方法都需要一点用户意识,但我真正想要的是能够说“电之后才有照明”,但不需要知道电之后有多远,中间有多少节点,或者它们是如何连接的。这可能吗?

如果我把“闪电在电之后”翻译成“x在c之后”,你可以通过告诉graphviz
c->x[style=invi]
来达到这个效果。这将在两者之间创建一个不可见的层次关系:

digraph G 
{
    rankdir = LR;
    a -> b -> c -> d;
    a -> x -> y;
    c -> x[ style = invis ];
}
产生

不过,我不太理解你的最后半句话“但不必知道……”。在我的解决方案中,
x
总是比
c
低一级,如果您不给出其他具体说明的话

digraph G 
{
    rankdir = LR;
    a -> b -> c -> d;
    a -> x -> y;
    c -> x[ style = invis ];
}