强制两个节点之间的对角线边缘

时间:2018-02-26 12:42:13

标签: graphviz dot

我的问题是 - 是否可以在图中的两个节点之间强制对角线?

假设两个节点之间只有一个链接。

digraph G {
    rankdir=TB
    a -> b;
}

这是呈现的内容:

enter image description here

这是(模拟)我想要的:

enter image description here

假设rankdir应保持机智(TB =从上到下)。我只是想控制一条边的角度方向。

我在文档中没有看到有关如何实现此目的的任何内容(查看here)。

所以我的问题是,这种行为是否可能,如果是这样,或者我要求不可能的事情?

2 个答案:

答案 0 :(得分:2)

使用隐藏节点,隐藏连接和正确的样条线设置,您可以获得:

digraph G {
    splines=line
    rankdir=TB
    a:s -> b:n;
    i->b [style=invis]  
    a-> i [style=invis]

{rank= same b i [style=invis]}
}

enter image description here

我认为,与您原来的模型更接近。这值得么?你决定。 :)

答案 1 :(得分:1)

可能有不同的方法可以解决这个问题,但如果没有详细了解您的需求,我不确定这是否真的有用。

例如您可以尝试东北 - 西南延伸:

digraph G {
    rankdir=TB
    a:se -> b:nw;
}

edge with nesw extension