digraph G{
size="8.3,11.7!" ratio=fill;
foo->bar;
}
使用 neato -Tpdf -o min_ex.pdf min_ex.gv
进行编译。结果生成的PDF文件尺寸为236毫米×115毫米,而不是预期的210毫米×297毫米。
Graphviz无论对于比页面小的图形(如此例)还是需要缩小到适合页面的图形,都会忽略此属性。
我已经尝试了各种 size
和 ratio
属性组合,但都无法将图形放在A4页面上。
那么,我应该指定什么参数,才能始终将图形放在A4页面上,而不考虑其大小?
文档:
size:
绘制的最大宽度和高度,以英寸为单位。如果只给出一个数字,则用于宽度和高度。
如果定义并且绘图大于给定大小,则统一缩小绘图,使其适合给定大小。
如果 size 以感叹号结尾(!),则认为它是所需的大小。在这种情况下,如果绘图的两个维度都小于 size,则均匀缩放绘图,直到至少一个维度等于 size 中的维度为止。
设置绘图的纵横比(绘图高度/绘图宽度)。请注意,在强制执行 size 属性约束之前,此比率已进行调整。此外,计算通常忽略节点大小,因此最终绘图大小可能仅近似所需大小。
如果 ratio 是数字,则将其视为所需的纵横比。然后,如果实际纵横比小于所需比率,则将绘图高度缩放以达到所需比率;如果实际比率大于所需比率,则扩展绘图宽度。
如果 ratio = “fill” 并且设置了 size 属性,则节点位置在 x 和 y 两个方向上分别缩放,以使最终绘图恰好填充指定大小。如果两个尺寸值都超过绘图的宽度和高度,则相应节点的每个坐标值都会相应地扩展。但是,如果任一尺寸维度小于绘图中的相应尺寸,则缩放一个维度,以使最终绘图具有与 size 指定的相同纵横比。然后,在呈现时,布局将在两个维度上均匀缩小,以适合给定的大小,这可能会导致节点和文本收缩。这可能不是用户想要的,但它避免了如何以可接受的方式重新定位节点以减小绘图大小的难题。
如果 ratio = “compress” 并且设置了 size 属性,则 dot 尝试压缩初始布局以适应给定大小。这实现了节点的更紧密的打包,但降低了平衡性和对称性。此功能仅在 dot 中有效。
如果 ratio = “expand”,size 属性被设置,并且图形的宽度和高度都小于 size 的值,则节点位置会均匀缩放,直到至少一个维度完全符合 size。请注意,
dot
时(至少在Linux上)可能会“冻结”机器(实际上,机器在3分钟后回来,但我不得不杀死仍然引起麻烦的进程)。 - Aquarius Power