2013-12-12 5 views
1

Я написал класс python для отображения и анимации двоичных деревьев поиска. Однако графики, создаваемые командами edge и node pyDot, по-видимому, не позволяют мне контролировать угол или направление стрелок, соединяющих каждый элемент моего дерева.Есть ли способ контролировать угол линии при создании графиков с pyDot

Существует множество элементов управления для формы узлов, но, похоже, нет никакого контроля за углом линий. Я надеялся найти какой-то параметр минимального угла для добавления к моим краям, поскольку они добавлены в график?

Это пример моего кода, где я рисую узлы, используя команду края:

def draw(parent_name, child_name): 
    # color for lines = red 
    edge = pydot.Edge(parent_name, child_name, color="#ff0000") 
    graph.add_edge(edge) 

Конечным результатом является то, что мои графики для бинарных деревьев поиска не похожи на традиционных древовидных структур, когда несколько узлов имеют только одного ребенка.

Вот ссылка на мой проект, в котором вы можете увидеть в противном случае рабочие результаты: http://www.embeddedcomponents.com/blogs/2013/12/visualizing-software-tree-structures/

ответ

3

из pydot документации:

создать запишет граф временный файл точек и процесса его с программой, заданной «prog» (по умолчанию «twopi»), , читающий вывод Postscript и возвращающий его в виде строки, является успешной операцией .

это не представляется возможным непосредственно управления ребрам ангелов с помощью dot language, но добавляющих невидимые ребра могут дать вам результат вы хотите, увидеть пример here, который генерирует следующий график:

enter image description here

+0

Спасибо, Гай, невидимый узел должен сделать трюк. – LectureMaker

+0

Я смог использовать ваше предложение Гай. Еще раз спасибо Гай. Я использовал невидимые узлы и невидимые ребра. Тем не менее стрелки в направленном графе не могли быть устранены с помощью невидимого или ни одного варианта, поэтому мне пришлось сделать цвет с «белым» на белом фоне. Теперь ссылка на проект, которую я опубликовал в вопросе выше, показывает обновленные графики и исходный код о том, как сгенерировать его. – LectureMaker