2011-04-05 121 views
8

我正在生成graphviz图,我遇到了一个问题 - 有几个节点非常大 - 以及大量的小节点。我尝试使用neatofdp生成png,但都生成非常大的图形,这些图形大部分是空白的(节点距离很远)。有没有办法为这些工具设置一个更大的弹簧“强度”来强制节点靠得更近?如何使用graphviz设置紧凑图形布局的'spring'力

+1

知道这个职位是很老:如果使用SFDP/FDP,有一个名为[K]属性( http://www.graphviz.org/doc/info/attrs.html#d:K),它是为此目的服务的。 – Yosh 2014-07-05 14:24:59

回答

11

使用neato时,您可能会拨弄overlapsep属性。

overlap可以设置为falsecompressscalexy,和more

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

+0

sep =“+ 1”固定为“找到意想不到的字符”+'“ – qxo 2017-07-04 09:39:48

+0

@qxo看起来像现在你必须把它放在引号'sep =”+ 1“之间;'' – marapet 2017-07-04 13:14:03