我制作的图形具有巨大的宽度比:它们的大小为51706 x 503像素。 如何告诉GraphViz优化宽度?
注1:图表实际上是一棵树,每个节点都有很多孩子。 这是sample。
注2:我想我用dot:)
注3:这是Ruby code
答案 0 :(得分:14)
如果图形由几个未连接的树组成,您可以将它们拆分(如Graphviz: break flat but sparsely connected graph into multiple rows?中所述)
根据您的特定图表,使用
时可能会获得较小的图表ratio="compress"
(你必须指定size
)
对于特定图表的详细优化,您可以添加rank
属性并在不同的等级上手动分配节点。
编辑:
有一个名为 unflatten 的graphviz工具似乎完全存在于此目的:
unflatten是dot的预处理器,用于改善方面 具有许多叶子或断开连接的节点的图的比率。通常 这种图形的布局通常非常宽或高。 unflatten 插入不可见的边缘或调整边缘上的minlen以改善 布局压缩。
从来没有必要使用它,但我认为值得一试。
答案 1 :(得分:3)
我还有一个问题,即neato在盒子之间保留了很多空间。最后,我使用以下图形设置获得了合理的结果:
overlap=prism, overlap_scaling=0.01, ratio=0.7
测试overlap_scaling和ratio的不同值特别有用。使用较小的示例(<50个节点)并使用gvedit.exe查看效果是最快的。
我花了很长时间来确定这些设置,这些设置记录在http://www.graphviz.org/doc/info/attrs.html
答案 2 :(得分:2)
您可以尝试使用ratio参数。