如何在我的 Graphviz 流程图中创建循环?
How can I create a loop in my Graphviz flowchart?
我正在尝试创建一个流程图,其中的节点位于设定的位置。我正在使用不可见节点来尝试强制边缘的方向。我的图表如下。
它不太正确,因为我希望从节点 d
出来的线,以及从 c
到 d
的边缘是连续的(并且是直的)。
我怎样才能让所有的线都连接起来?谢谢
我要重现的代码
digraph g1 {
graph [splines=false];
// invisible nodes
node[fontsize=15, shape = box, width=3, height=0] ;
i1 [ style="invis"];
i2 [ style="invis"];
i3 [ style="invis"];
i4 [ style="invis"];
node[fontsize=15, color = black, shape = box, width=3, height=1] ;
a[color=blue, label="a"];
b[color=green, label="b"];
c[color=orange, label="c"];
d[color=red, label="d"] ;
{rank=same; a -> b -> c};
{rankdir = TB; c -> i1[arrowhead=none];
i1 -> d[label=" FOR EACH\n\n"];
d -> i2[arrowhead=none];
};
{rank=same; i3 -> i2[arrowhead=none] };
{rankdir = TB;
b -> i4[style="invis"];
i4 -> i3[arrowhead=none];
};
{rank=same; i4 -> i1};
}
根据 Paul 的评论,我尝试使用 node[fontsize=15, shape = box, label="", width=0, height=0, fixedsize=true]
结果是
使用 shape = points
和 minlen
来拯救:
digraph g1 {
graph [splines=false];
// invisible nodes
node[ shape = point, width=0, height=0] ;
i1 [ style="invis"];
i2 [ style="invis"];
i3 [ style="invis"];
i4 [ style="invis"];
node[fontsize=15, color = black, shape = box, width=3, height=1] ;
a[color=blue, label="a"];
b[color=green, label="b"];
c[color=orange, label="c"];
d[color=red, label="d"] ;
{rank=same; a -> b -> c};
c -> i1[arrowhead=none];
i1 -> d[label=" FOR EACH\n\n"];
d -> i2[arrowhead=none];
{rank=same; i3 -> i2[arrowhead=none, minlen = 7 ] };
b -> i4[style="invis"];
i4 -> i3[arrowhead=none];
{rank=same; i4 -> i1};
}
产量
我正在尝试创建一个流程图,其中的节点位于设定的位置。我正在使用不可见节点来尝试强制边缘的方向。我的图表如下。
它不太正确,因为我希望从节点 d
出来的线,以及从 c
到 d
的边缘是连续的(并且是直的)。
我怎样才能让所有的线都连接起来?谢谢
我要重现的代码
digraph g1 {
graph [splines=false];
// invisible nodes
node[fontsize=15, shape = box, width=3, height=0] ;
i1 [ style="invis"];
i2 [ style="invis"];
i3 [ style="invis"];
i4 [ style="invis"];
node[fontsize=15, color = black, shape = box, width=3, height=1] ;
a[color=blue, label="a"];
b[color=green, label="b"];
c[color=orange, label="c"];
d[color=red, label="d"] ;
{rank=same; a -> b -> c};
{rankdir = TB; c -> i1[arrowhead=none];
i1 -> d[label=" FOR EACH\n\n"];
d -> i2[arrowhead=none];
};
{rank=same; i3 -> i2[arrowhead=none] };
{rankdir = TB;
b -> i4[style="invis"];
i4 -> i3[arrowhead=none];
};
{rank=same; i4 -> i1};
}
根据 Paul 的评论,我尝试使用 node[fontsize=15, shape = box, label="", width=0, height=0, fixedsize=true]
结果是
使用 shape = points
和 minlen
来拯救:
digraph g1 {
graph [splines=false];
// invisible nodes
node[ shape = point, width=0, height=0] ;
i1 [ style="invis"];
i2 [ style="invis"];
i3 [ style="invis"];
i4 [ style="invis"];
node[fontsize=15, color = black, shape = box, width=3, height=1] ;
a[color=blue, label="a"];
b[color=green, label="b"];
c[color=orange, label="c"];
d[color=red, label="d"] ;
{rank=same; a -> b -> c};
c -> i1[arrowhead=none];
i1 -> d[label=" FOR EACH\n\n"];
d -> i2[arrowhead=none];
{rank=same; i3 -> i2[arrowhead=none, minlen = 7 ] };
b -> i4[style="invis"];
i4 -> i3[arrowhead=none];
{rank=same; i4 -> i1};
}
产量