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

12

我正在使用Graphviz生成图表,但出现了一个问题 - 有几个节点非常大,而小节点数量又很多。我尝试使用NeatoFDP生成PNG图像,但两者都会生成非常大的图像,大部分都是空白(节点之间距离过远)。是否有办法为这些工具设置更大的弹簧“力量”,以强制节点更靠近一些?


1
了解这篇文章非常古老:如果使用sfdp/fdp,有一个称为K的属性,可用于此目的。 - Yosh
1个回答

15

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

overlap可以设置为falsecompressscalexy等选项,还有更多选项。

sep可以指定前面加上加号时作为附加边距,否则边距将按比例缩放节点的大小加1。看起来默认值为

不要犹豫,发布一个示例图。由于不知道您的特定图形,我创建了一个包含一些大型和小型节点的示例:

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;

在此输入图片描述


sep="+1" 固定为 "发现意外字符 '+'" - qxo
@qxo 看起来现在你需要将它放在引号之间 sep="+1"; - marapet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接