LINUX.ORG.RU

networkx отрисовка

 , , , ,


0

1

Доброго времени. Изучаю библиотеку networkx. Не могу понять как указать чтобы рисовала к примеру вертикально дерево, а не разбрасывало как попало. Подскажите, пожалуйста.



Последнее исправление: wojaovlad (всего исправлений: 1)

Короче, чувак, я смотрю, у тебя постоянно проблемы с отрисовкой и всякие кастомные сценарии. Когда мне нужно было это всё, я просто сохранял графы в *.dot и дальше работал с ними уже при помощи пакета graphviz. Вот нужные функции: http://networkx.github.io/documentation/latest/reference/drawing.html#id2

Вот примерчик, как оно было у меня:

dotfile = "%s.dot" % title
with open(dotfile, "w") as f:
    print(nx.to_agraph(cc_graph), file=f)
call([
    "neato", "-Goverlap=false", "-Gsplines=true", "-Ecolor=#00000040",
    "-Nstyle=rounded,filled", "-Nfontname=Ubuntu", "-Nfontcolor=red",
    "-Tpng", dotfile, "-o", title + ".png"])
call(["rm", dotfile])
Не помню почему, но для моего сценария были какие-то проблемы с write_dot. На твоём месте я бы сначала её попробовал, так как она по-идее первые 2 строчки и делает. Вот эта вот neato - одна из утилит пакета graphviz. Почитай roadmap здесь.

aemxdp
()
Ответ на: комментарий от aemxdp

Решил свой вопрос таким образом:

gr.add_node(functions[i], pos=[i, 5])

pos=nx.get_node_attributes(gr,'pos')

Случайно нашёл на форуме: http://stackoverflow.com/questions/11804730/networkx-add-node-with-specific-p...


Изучил ваш совет graphviz и dot, но всё же networkx уже уж очень понравилась и природнидась и кажется проще для моих нужд чем иные решения.

wojaovlad
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.