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

时间:2011-04-05 12:33:48

标签: graphviz neato

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

1 个答案:

答案 0 :(得分:11)

使用neato时,您可以使用overlapsep属性。

overlap可以设置为falsecompressscalexymore

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;

enter image description here