如何使用graphviz为紧凑图形布局设置"弹簧"力

Mar*_*ski 10 graphviz neato

我用graphviz生成图表,我遇到了一个问题 - 有几个非常大的节点 - 以及大量的小节点.我尝试使用neato和fdp生成png,但两者都生成非常大的图形,这些图形大多是空白的(节点相距很远).有没有办法为这些工具设置更大的弹簧"强度",以迫使节点靠近在一起?

mar*_*pet 11

当使用neato时,你可以overlap使用sep属性来改变它.

overlap可以设置为false,compress,scalexy,和更多.

sep当与前面的加号一起使用时,可以指定附加边距,否则通过用1 +的值来缩放节点的大小来定义边距sep.它似乎是默认的

不要犹豫发布样本图表.不知道你的特定图表,我做了一个包含一些大节点和一些小节点的例子:

layout=neato;
overlap=scalexy; //false, compress, ...
sep="+1"; // 0.1, +1

node[label="Large node", width=2, height=2];
l1; l2; l3;
node[label="\N", width=0.5, height=0.3];
1 -> l1;
2 -> l1;
3 -> l1;
4 -> l1;
5 -> l1;
5 -> l2;
6 -> l2;
7 -> l2;
8 -> l2;
8 -> l3;
9 -> l3;
10 -> l3;
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述