如何优化GraphViz输出宽度?

Mic*_*lFM 20 graphviz

我制作的图形具有巨大的宽度比:它们的大小为51706 x 503像素.如何告诉GraphViz优化宽度?

注1:图形实际上是一个树,每个节点都有很多子节点.这是一个例子.

注2:我想我用点:)

注3:这是Ruby代码

mar*_*pet 14

如果图形由几个未连接的树组成,您可以将它们拆分(如Graphviz中所述:断开平面但是稀疏连接的图形为多行?)

根据您的特定图表,您可以在使用时获得较小的图表

ratio="compress"
Run Code Online (Sandbox Code Playgroud)

(你必须指定size)

对于特定图表的详细优化,您可以添加rank属性并在不同的级别上手动分配节点.


编辑:

有一个名为unflatten的graphviz工具似乎完全存在于此目的:

unflatten是dot的预处理器,用于改善具有许多叶子或断开连接的节点的图的宽高比.这种图形的通常布局通常非常宽或高.unflatten插入不可见的边缘或调整边缘上的minlen以改善布局压缩.

从来没有必要使用它,但我认为值得一试.


小智 5

我也遇到了一个问题,即neato 在盒子之间保留了很多空间。最后,我还使用以下图形设置获得了合理的结果:

overlap=prism, overlap_scaling=0.01, ratio=0.7
Run Code Online (Sandbox Code Playgroud)

测试重叠缩放和比率的不同值特别有用。使用较小的示例(<50 个节点)并使用 gvedit.exe 来查看效果是最快的。

我花了很长时间来确定这些设置,这些设置记录在 http://www.graphviz.org/doc/info/attrs.html