我正在尝试使用Graphviz点(但我愿意使用其他东西)来生成一个带有长"节点主线"和许多小分支的图形.我希望主线从左到右是直的,在它上面或下面有小分支.然而,Graphviz"平衡"了两个分支,所以我最终得到了一个弯曲的图形.
为了说明,这是一个类似于我目前得到的草图:

这就是我真正想要的:

有没有办法强制或鼓励Graphviz生成第二个图形?我可以使用"虚拟"第二个分支让它做三向布局,然后隐藏/删除虚拟对象,但如果有更好的选择,那将是更好的选择.
mar*_*pet 37
这是使用边的权重属性的解决方案:
digraph G {
rankdir="LR";
node[width=0.15, height=0.15, shape=point];
edge[weight=2, arrowhead=none];
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8;
edge[weight=1];
2 -> 9 -> 10 ;
5-> 11 -> 12;
}
Run Code Online (Sandbox Code Playgroud)
结果:

mar*_*pet 33
使用节点的group属性的第二个解决方案- 再次是有向图:
从graphviz点参考:
如果边缘的端点属于同一组,即具有相同的组属性,则设置参数以避免交叉并保持边缘笔直.
所以我们走了:
digraph g{
rankdir="LR";
node[width=0.15, height=0.15, shape=point, group=main];
edge[arrowhead=none];
1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7 -> 8;
node[group=branches];
2 -> 9 -> 10;
5 -> 11 -> 12;
}
Run Code Online (Sandbox Code Playgroud)
输出与我的第一个答案完全相同.