我的问题与 this one 基本相同但给出的答案对我不起作用。
这是一个示例渲染 (source)和
compound=true;
overlap=scalexy;
splines=true;
layout=neato;
边缘有一些不必要的重叠,但这还不错,主要问题是所有浪费的空间。
我试过设置
sep=-0.7;
这就是发生的事情。间距要好得多,但现在与节点有一些重叠。我尝试了不同的
overlap
参数,这是唯一可以给出远程可接受结果的参数。我尝试更改为 fdp 布局并设置 Spring 常数属性
K
在全局范围内,但我只是得到了这样的东西:来源很直接
a--b--c
那种东西,没有花哨的技巧。我想要的是尽可能缩短所有边缘(最多至少)前提是此调整不会引入任何新的重叠 ,这是
sep
完全失败。对于布局引擎来说,这似乎并不难。 graphviz套件可以吗?我不介意更改渲染软件,但我不想在每个节点或每个边缘的基础上注释源。我的理想结果是最大限度地减少边长的偏差,一次考虑一个节点,即除了必要的异常(exception),每个节点都具有相等长度的边,但这是一厢情愿的想法。优先考虑的是减少每条边的长度,限制条件是不能引入重叠。
我会接受部分解决方案,但它们必须是全自动和开源的。
我怎样才能做到这一点?谢谢。
最佳答案
我找到了 https://sites.google.com/site/kuabus/programming-by-hu/graphviz-test-tool ,一个交互式工具,用于参数化许多选项并重复渲染它们。我浏览了 Java 应用程序提供的完整列表,最终得到了以下属性集:
overlap=false
maxiter=99999999
damping=9999999
voro_margin=.001
start=0.1
K=1
nodesep=999999999999
labelloc=c
defaultdist=9999999
size=20,20
sep=+1
normalize=99999999
labeljust=l
outputorder=nodesfirst
concentrate=true
mindist=2
fontsize=99999999
center=true
scale=.01
inputscale=99999999
levelsgap=9999999
epsilon=0.0001
我找不到
neato
的参数化这使得生成所需的“适度缩放”图形成为可能。
关于dot - 如何在不引入重叠的情况下使 DOT/neato 图更紧凑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755365/