2017-02-12 2 views
1

Как заставить 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)

ответ

0

Глядя на http://pygraphviz.github.io/documentation/pygraphviz-1.4rc1/reference/agraph.html а подпись для метода draw, похоже, что макет нужен только в том случае, если pos нет.

Если prog не указан и график имеет позиции (см. layout()), то дополнительное позиционирование графика не будет выполнено . "

В вашем случае вы можете просто попробовать, не используя A.layout(). просто A.draw ('foo.pdf')

Смежные вопросы