我正在尝试使用设置位置的节点创建流程图。我正在使用不可见的节点来尝试强制边缘的方向。我的图表如下。
它不太正确,因为我希望从节点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]
导致
答案 0 :(得分:7)
使用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};
}
产量