Graphviz 节点 rank=after(x)
Graphviz nodes rank=after(x)
有没有办法让一个节点在另一个节点之后到达某个地方,但不使用rank=same方法? Same 非常显着地限制了图表,但之后给了它更多的自由度。
digraph G {
rankdir=LR
a->b->c->d
a->x->y
{rank = same; d; x;}
}
在这个例子中,我不关心 x 与 d 的等级相同,只是它在 [=30= 之后]c.
以前有人问过类似的问题,但没有回答:
Python - Graphviz force rank to be at least the same
子图可以用作分组策略,但我已经在使用子图了。我不认为一个节点可以同时是两个。
digraph G {
rankdir=LR
a->b->c->d
a->x->y
subgraph cluster_after{
x; d; y;
}
}
这两种方法都需要一点用户意识,但我真正想要的是能够说 "lighting comes after electricity" 但不必知道多远之后,中间有多少节点,或者它们是如何连接的。这可能吗?
如果我将 "lightning comes after electricity" 翻译成 "x comes after c",那么您可以通过告诉 graphviz c -> x[ style = invis ]
来实现这种效果。这在两者之间创建了一种无形的层次关系:
digraph G
{
rankdir = LR;
a -> b -> c -> d;
a -> x -> y;
c -> x[ style = invis ];
}
生产
虽然我不太理解你的后半句 "but without having to know..."。在我的解决方案中,如果您不给出其他具体说明,x
将始终比 c
低一级。
有没有办法让一个节点在另一个节点之后到达某个地方,但不使用rank=same方法? Same 非常显着地限制了图表,但之后给了它更多的自由度。
digraph G {
rankdir=LR
a->b->c->d
a->x->y
{rank = same; d; x;}
}
在这个例子中,我不关心 x 与 d 的等级相同,只是它在 [=30= 之后]c.
以前有人问过类似的问题,但没有回答: Python - Graphviz force rank to be at least the same
子图可以用作分组策略,但我已经在使用子图了。我不认为一个节点可以同时是两个。
digraph G {
rankdir=LR
a->b->c->d
a->x->y
subgraph cluster_after{
x; d; y;
}
}
这两种方法都需要一点用户意识,但我真正想要的是能够说 "lighting comes after electricity" 但不必知道多远之后,中间有多少节点,或者它们是如何连接的。这可能吗?
如果我将 "lightning comes after electricity" 翻译成 "x comes after c",那么您可以通过告诉 graphviz c -> x[ style = invis ]
来实现这种效果。这在两者之间创建了一种无形的层次关系:
digraph G
{
rankdir = LR;
a -> b -> c -> d;
a -> x -> y;
c -> x[ style = invis ];
}
生产
虽然我不太理解你的后半句 "but without having to know..."。在我的解决方案中,如果您不给出其他具体说明,x
将始终比 c
低一级。