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

10
我正在创建一个 .png 文件,代码如下:
import pygraphviz as pgv

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

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

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


这可能会有所帮助:http://www.graphviz.org/doc/FAQ.html#Q40 - Gary Kerr
3个回答

6
您可以通过设置图形对象的属性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英寸的纸张,并确保它占据了该纸张上的所有空间。

1
size只指定图形的最大尺寸...有没有一种方法可以指定输出的确切尺寸? - blue
8
иҜ·жіЁж„ҸпјҢеҰӮжһңиҰҒд»Һpythonд»Јз ҒдёӯдҪҝз”Ёpygraphvizжӣҙж”№иҜҘеұһжҖ§пјҢеҲҷеҸҜд»ҘдҪҝз”ЁAGraphзҡ„graph_attr.update(attr=value)ж–№жі•пјҢдҫӢеҰӮпјҢеҰӮжһңжӮЁзҡ„еӣҫеҪўжҳҜGпјҡG.graph_attr.update(size="2,2")гҖӮжңүе…іеҸҜз”ЁеұһжҖ§зҡ„жӣҙеӨҡдҝЎжҒҜпјҢиҜ·еҸӮи§ҒжӯӨеӨ„пјҡhttp://www.graphviz.org/doc/info/attrs.htmlгҖӮ - cedbeu
2
它提供多少像素每英寸?更新:啊,还有一个你可以设置的DPI属性:http://www.graphviz.org/doc/info/attrs.html#a:dpi - rakslice

1

您可以轻松地使用以下方式设置分辨率:

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

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

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

如果您希望避免分辨率方面的问题,另一种选择是将文件导出为矢量格式,例如.svg


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

希望能帮到你。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接