所以我使用Graphviz生成相当复杂的图形。为了避免使它们太宽,我使用" unflatten"程序中包含的工具可以稍微错开节点。然而,unflatten以相当尴尬的方式排除节点。作为参考,这是我的DOT文件,我开始于:
digraph G {
overlap=scalexy;
graph [fontname = "Consolas",layout=dot];
edge [fontname = "Consolas",fontsize=11];
node [fontname = "Consolas", fontsize=11, style=filled, colorscheme=set39];
Senses -> Sight;
Senses -> Hearing;
Senses -> Touch;
Senses -> Taste;
Senses -> Smell;
}
当我通过unflatten工具运行此代码时,我得到了这个:
digraph G {
graph [fontname=Consolas,
layout=dot,
overlap=scalexy
];
node [colorscheme=set39,
fontname=Consolas,
fontsize=11,
style=filled
];
edge [fontname=Consolas,
fontsize=11
];
Senses -> Sight [minlen=1];
Senses -> Hearing [minlen=2];
Senses -> Touch [minlen=3];
Senses -> Taste [minlen=1];
Senses -> Smell [minlen=2];
}
然而,稍微修改此代码,如此
digraph G {
graph [fontname=Consolas,
layout=dot,
overlap=scalexy
];
node [colorscheme=set39,
fontname=Consolas,
fontsize=11,
style=filled
];
edge [fontname=Consolas,
fontsize=11
];
Senses -> Sight [minlen=1];
Senses -> Hearing [minlen=2];
Senses -> Touch [minlen=3];
Senses -> Taste [minlen=2];
Senses -> Smell [minlen=1];
}
gives me this,这更像是我想要的。现在,对于这样一个小图,编辑输出的成本是微不足道的。然而,这仅仅是一个例子,我使用的实际图表非常大,并且手动执行此操作将是不切实际的。有没有解决这个问题的方法,还是我运气不好?