Pygraphviz 和固定节点位置

Pygraphviz and fixed node positions

如何强制 pygraphviz 为我的节点保持固定位置。假设您有以下代码

from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function
from __future__ import division

import pygraphviz as pgv
from _operator import pos

A=pgv.AGraph()

A.add_node(1,color='red',pos="0,1") 
A.add_node(2,color='blue',pos="1,10")
A.add_node(3,color='yellow'pos="2,2")


A.add_edge(1,2,color='green')
A.add_edge(2,3)
A.add_edge(2,2,"1")
A.add_edge(1,3)

A.graph_attr['epsilon']='0.001'
print(A.string()) # print dot file to standard output
A.layout('dot') # layout with dot
A.draw('foo.pdf') # write to file

如何强制节点出现在预定位置 (0.1)、(1,10 和相应的 (2,2)

查看 http://pygraphviz.github.io/documentation/pygraphviz-1.4rc1/reference/agraph.html 和 draw 方法的签名,看起来好像只有在 pos 不存在时才需要布局。

” 如果未指定 prog 并且图形具有位置(请参阅 layout()),则不会执行额外的图形定位。"

在您的情况下,您可以不使用 A.layout() 来尝试。只是 A.draw('foo.pdf')