62

有没有人有任何减少graphviz生成的图形大小的一般技巧(大小为区域,而不是文件大小)。

我有一个相当大的图表(700 个节点)。我为每个节点设置了一个较小的字体大小,但它似乎只是减小了字体大小而不是实际节点大小。是否还有任何属性可以减少图表中空白的总量?谢谢!

4

1 回答 1

104

根据我使用 graphviz 渲染该大小(约 700 个节点)的图形的经验,对所有三个对象(图形、节点和边缘)应该做你想做的事:

通过“nodesep”减少节点之间的最小间隔;例如,节点[nodesep=0.75];这将使您的图表“过于紧凑”。(与其他任何可调整参数相比, nodeseprankep可能更能影响 dot 绘制图形的方式)

减少不同等级的节点之间的最小距离,例如,nodes[ranksep=0.75];'ranksep' 设置不同等级的节点之间的最小距离 - 如果您的图表由多个等级组成,这将显着影响您的图表布局

增加边缘权重,例如edge[weight=1.2];这将使边缘更短,从而使整个图形更紧凑

移除节点边框和节点填充,例如,nodes[color=none; shape=plaintext],特别是对于椭圆形节点,总节点空间的很大一部分是“未使用的”(即,不用于显示节点标签);每个节点的足迹现在减少到只是它的文本

显式设置节点的字体大小(节点边框被放大,以便它们围绕节点文本,这意味着给定节点的字体大小和文本数量对其大小有显着影响);[fontsize=11] 应该足够大以清晰易读,同时减少“杂乱”的外观(默认大小为 14)

对节点和边使用不同的颜色——这将使您的图表更易于阅读;例如,将节点“文本”字体颜色设置为蓝色,将边缘字体颜色设置为“灰色”,以帮助眼睛区分两组图形结构。这将产生比您想象的更大的差异。

显式设置总图大小,例如graph[size="7.75,10.25"](确保您的图适合 8.5 x 11 页面并占据整个空间)

于 2010-08-06T23:50:57.543 回答