首页 > 解决方案 > Graphviz (dot) 控制边缘路由

问题描述

在此图中,底边未与顶边对称绘制:

digraph G {
    A:ne -> A:nw;
    A:sw -> A:se;
}

在此处输入图像描述

我希望它看起来更像一个“胖雪人”,边缘A:sw -> A:se;在节点下方循环。有办法吗?

标签: graphvizdot

解决方案


简短的回答不 - 或不容易。
循环似乎是从rankdir方向放置的。如果rankdir为 TB(向下),则循环似乎被“向上”放置。
如果您愿意为此工作,您可以运行图表两次,一次使用rankdir=TB,一次使用rankdir=BT - 两次都使用-Tdot。然后你必须用另一个图的等效边替换有问题的边。[我希望这是有道理的]
这是您的图形运行的调整版本,具有不同的 rankdir 值:

digraph G {
    A:ne -> A:nw;
    A:sw -> A:se;
    dummy [style=invis]
    dummy -> A [style=invis]
}

在此处输入图像描述 在此处输入图像描述


推荐阅读