我在 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