graphviz可以将图形约束到一定宽度吗?

时间:2019-03-06 20:42:56

标签: python graphviz

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

2 个答案:

答案 0 :(得分:1)

尝试使用ratio属性:

  

...

     

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

所以如果原始图形是这样的:

enter image description here

添加// Following the example to the question financingPurposeList.sort(function(a, b){ return a.code.length - b.code.length; }); 属性将使其看起来像这样:

enter image description here

UPD:还要注意print("number: " + str(123 % 122, 97)) number: 98 属性和graph [ratio="1.5"]属性是如何结合使用的,也许这种组合最适合您。比率文档中有关我发布的链接的详细说明。

答案 1 :(得分:0)

sfdp由于使用了弹簧模型,因此倾向于生成正方形图。但是,如果使用dot,则会添加诸如rankrankdir之类的属性,以使图形更符合您的意愿。

您可以参考Node, Edge and Graph Attributes来了解sfdp支持哪些属性。