我有一个我在graphviz 中创建的图,但问题是边相互重叠(我每行有5-7 个节点),所以很难分辨每个节点哪些是它连接的节点。
如何使边缘不相互重叠?让它们相互交叉就可以了。
我有一个我在graphviz 中创建的图,但问题是边相互重叠(我每行有5-7 个节点),所以很难分辨每个节点哪些是它连接的节点。
如何使边缘不相互重叠?让它们相互交叉就可以了。
我假设你有一个用点布局的有向图。
我不认为有一个神奇的开关可以防止重叠的边缘。Graphviz 尝试开箱即用地做到这一点。
一些可能有帮助的建议,具体取决于图表:
另一种方法是向图形添加重叠属性。允许的属性是 scale (这将大大增加输出的大小)或 false (这不会增加太多的大小,但可能会导致边缘与节点重叠)。
overlap = scale;
如果您使用overlap = false,您可以通过添加属性来消除与节点的边缘重叠splines=true:
overlap = false;
splines = true;
对于大型图,这将显着减慢生成时间。
即使对于非常微不足道的图表,我也看到graphviz
( neato
, fdp
) 会产生重叠。例如:
graph G {
0;
1;
2;
3;
0--1 ;
1--2 ;
2--3 ;
3--0 ;
}
在我的代码版本中产生一个交叉2.38.0
。
从文档中他们建议在这些情况下尝试使用不同的随机种子。最终,对于更复杂的图表,交叉将是不可避免的,我不确定引擎在避免交叉方面付出了多少努力。
例如,这对我有用:
neato -Gstart=5 file.dot -Tps -o file.ps