如何在Pygraphviz中设置输出图像的宽度和高度

10 投票
3 回答
13752 浏览
提问于 2025-04-16 02:50

我正在创建一个这样的 .png 文件:

import pygraphviz as pgv

G = pgv.AGraph()
G.add_nodes("a")
G.add_edge("b", "c")

G.layout()
G.draw("output.png")

我该如何设置输出图像的大小呢?

3 个回答

0

除了设置大小,你可能还想要保持一个特定的宽高比。

如果你想设置一个1:1.4的比例(宽度=1,高度=1.4,也就是大约A4纸的比例),你可以这样做(最大尺寸为10英寸):

G.draw('output.png', args='-Gsize=10 -Gratio=1.4', prog='dot')

这里的格式是:

图形参数:-G<arg>;节点参数:-N<arg>;边参数:-E<arg>

这里有一份参数列表:

https://manpages.debian.org/stretch/graphviz/dot.1.en.html

希望这对你有帮助。

1

你可以很简单地设置分辨率,方法是:

G.draw("file.png", args='-Gdpi=200', prog="dot")

或者因为这是一个图形属性:

G.graph_attr['dpi'] = '200'

如果你想避免分辨率方面的问题,另一个选择是将文件导出为矢量格式,比如 .svg

7

你可以通过设置size来限制输出图像的最大大小,这个size图形对象的一个属性。例如:

digraph "my_graph" {

     graph[ fontname = "Helvetica-Oblique",
            fontsize = 12,
            label = "some label",
            size = "7.75,10.25" ];

     node [ shape = polygon,
            sides = 4 ];
}

在这个例子中,我把图形的大小设置为7.75 x 10.25,这个尺寸是为了确保你的图形能放在8.5 x 11英寸的纸上,并且能够充分利用这张纸的空间。

撰写回答