首页 > 解决方案 > graphviz 可以将图形约束到一定宽度吗?

问题描述

我正在使用 python 中的 graphviz 来绘制日文汉字及其关系。我将输出导出为 svg 并使用 sfdp 作为渲染引擎。输出大致为正方形 (3000x3000)。我想知道是否有任何方法可以指定约束,以便输出更像是一个垂直矩形(例如 5000x1000)而不是正方形。似乎尺寸参数主要作用于结果图像的比例,而不是节点本身的位置。但是我有很多不同的连接组件,所以应该很容易移动它们。我想做的事是不可能的吗?谢谢!

标签: pythongraphviz

解决方案


尝试使用ratio属性:

...

如果 ratio 是数字,则将其作为所需的纵横比。然后,如果实际的纵横比小于所需的比例,则将绘图高度按比例放大以达到所需的比例;如果实际比例大于所需比例,则按比例放大绘图宽度。

因此,如果原始图形是这样的:

在此处输入图像描述

添加graph [ratio="1.5"]属性将使其如下所示:

在此处输入图像描述

UPD:还要注意属性如何与ratio属性配对使用size,也许组合最适合您。我发布的链接上的比率文档中的详细说明。


推荐阅读