Graphviz中的左 - >向右,向下,向右 - >向左,向下,向左 - >向右布局

时间:2018-01-11 10:03:32

标签: graphviz flowchart

我有一个很长的线性(不是很多分支)流程图,它在graphviz中显示为太高而无法放在单个页面上,或者太宽(如果方向是从左到右)

是否有一种简单的方法让graphviz以这样的方式布局图形,即从左到右,然后向下,然后从右到左,然后向下? (我希望这能解释得很好)。

Desired layout

像这样(用visio绘制)

1 个答案:

答案 0 :(得分:4)

实际上很容易得到你想要的东西:

digraph so 
{
    node[ shape = square ];
    { rank = same; 1 2 3 }
    { rank = same; 6 5 4 }
    { rank = same; 7 8 }

    1 -> 2 -> 3;
    3 -> 4;
    6 -> 5 -> 4 [ dir = back ];
    6 -> 7;
    7 -> 8;
}

产量

enter image description here

rank = same确保此处定义的框并排放置;没有它,它们将垂直对齐。

由于方框是按照定义的顺序从左到右绘制的,因此有必要按照上面第二行的方式定义它们。

这也是让中间一排箭头指向后方的原因 - 实际上边缘从6变为5,从5变为{{1 }}

从这里你可以开始微调 - 框中的标签而不是数字,更长的边缘,颜色......