Pygraphviz和固定节点位置

时间:2017-02-12 05:42:47

标签: pygraphviz

如何强制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)

1 个答案:

答案 0 :(得分:0)

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

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

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