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 ответ

Решение

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

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

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

Другие вопросы по тегам