2009-09-18 35 views
4

我正在构建一个CFG(上下文无关语法),并且我希望出口节点始终位于图的底部。有时它自然发生,有时不会。Graphviz:有没有办法强制节点到底?

实施例:

digraph G { 
    0; 
    1; 
    4; 
    5; 
    7; 
    8; 
    0 -> 4; 
    5 -> 7; 
    7 -> 8; 
    7 -> 1; 
    8 -> 5; 
    4 -> 7; 
} 

绘制(用点):

alt text

节点1是我的出口节点,我想,要成为在底部。建议?

回答

7

这个子使用等级规范。在这种情况下应该在底部,使其与最大将使其在同级别为5:

digraph G { 
    0; 
    { rank = sink; 1; } 
    5; 
    4; 
    7; 
    8; 
    0 -> 4; 
    5 -> 7; 
    7 -> 8; 
    7 -> 1; 
    8 -> 5; 
    4 -> 7; 
} 
+0

完美。这也澄清了应该如何使用等级,这显然是我误解了。在此之后,我使用rank = same来解决另一个问题。谢谢。 – 2009-09-18 20:38:44

-2

DOT尝试选项 “-y”

-y   - Invert y coordinate in output 
+0

即建立一个空白图表我。但描述意味着我应该让我的图形颠倒,这不是我想要的。我想从强连接组件中拉出“1”。 – 2009-09-18 20:00:54

相关问题