【问题标题】:How can I achieve strict reverse ranking of graphviz dot?如何实现graphviz dot的严格反向排名?
【发布时间】:2017-11-20 16:13:40
【问题描述】:

编辑:如果发布了一个新问题来取代这个问题。 Align Ranks in Graphviz

首先,让我为在标题中发明/滥用某些术语而道歉。 “严格”是指相同等级的所有节点在输出图像中需要相同的 y 位置,而默认情况下它们会稍微移动。其次,“反向”是指所有叶子都具有相同的等级,出现在图表底部的同一行,并且它们的所有祖先都将相应地进行排名和对齐(不反转边缘方向)。我正在使用的图是有界半格,因此没有循环部分,所有节点都有明确定义的等级。

我尝试反转边缘方向(并且“dir=back”可以使边缘看起来像原来的方向),但“严格”部分仍然是一个问题

【问题讨论】:

  • 在您的第一张图中,我看不到两个不在同一 y 坐标上的相同等级的节点。 ?

标签: graphviz rank


【解决方案1】:

如何将所有叶子放在底部(最大)排名?

您可以包含一个包含所有离开节点的子图并添加属性rank=max

{
    rank=max;
    leaf1; leaf2; leaf3;
}

这应该将所有叶节点放在底部。

【讨论】:

  • 这仅适用于叶子,但这些叶子的祖先仍然处于错误的等级。
【解决方案2】:

我最终更改了生成 graphviz 的算法以在输出中放置几个​​ { rank = same; ... } 项目

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-11-29
    • 2019-12-04
    • 2014-02-08
    • 2012-10-25
    • 2018-02-11
    • 2010-12-02
    • 2016-03-17
    相关资源
    最近更新 更多