Просто глаз выпуклый, а картинка плоская, вот при перемещении зрачка окружающие фокус мелкие детали получают иллюзию движения.
На этом некоторые оптические иллюзии построены.
Возможно конечно усталость глаз после рабочего дня также делает своё дело. Одно скажу, это не спец-эффект, там простой цикл генерации всевозможных графов до шести узлов включительно. networkx.lanl.gov/examples/drawing/atlas.html
Ещё б классно посмотреть визуализацию в 3d. И может ли оно подписывать дуги/вершины?
PS Ссылочку на networkx.lanl.gov/reference/drawing.html подправьте пожалуйста
Ещё возможности по настройке шрифта, размера и цвета как текста, так и формы и заливки узла. Плюс можно добавлять неограниченное количество своих свойств. Вот только как сказано ниже, с уникодом проблемы пока
Как глянул на рисунок — топологии простых графов, к-а-а-а-а-к представил себе такую рабочую сеть — сразу захотелось повеситься.
А за либу мерси — можно поиграться на досуге.
Что Вы подразумеваете под «нормально»?
Graphviz даёт больше контроля, но и чуть сложней в использовании. По умолчанию для визуализации используется matplotlib, которая имеет своё представление как надо лучше. В принципе можно получить что-то похожее на это:
Готовой функции для такого дерева я там не видел. Меня вполне устроило дерево из моего предыдущего коммента и я просто глубже не копал.
Уверен, можно настроить и для вывода планарного графа. NetworkX заточен под работу с данными и визуализация вторична.
Вот документация networkx.lanl.gov/reference/drawing.html
Также никто не мешает использовать другие либы для вывода изображений.
Возможно кто-нибудь другой сталкивался и отпишется
Насколько я понимаю, DOT — это язык и сам он ничего не рисует, есть программы для визуализации.
Дело в том, что есть готовый набор скриптов на python, которые уже юзают networkx в данный момент.
И если использовать dot для python, то для этого видел только одну либу: python-graph, а значит нужно либо переходить на него, либо писать модуль для экспорта networkx графов в DOT. Оба варианта достаточно затратные по времени.
В статье на вики о DOT упоминается Graphviz, так-что networkx.lanl.gov/pygraphviz/ вполне должен работать с ним. Я так понимаю его разрабатывают те же, кто и NetworkX
networkx.write_dot завязан на pygraphviz, который под windows в чистом виде не поставляется.
После правок инсталяционного файла и компиляции нужной библиотеки при помощи Visual Studio ничего не заработало.
Ждём пока у разработчика pygraphviz появится девелоперская машина под windows. К слову говоря, времени, потраченного на попытки установить pygraphviz под windows хватило бы на реализацию визуализации networkx дерева на matplotlib.
Доброго времени суток! Пытаюсь написать автотест, основанный на рохождении орграфа. В вашей статье написано про встраивание функции в ребро. Можете показать чуть более развернутый пример с обходом графа и выполнением функций на рёбрах? Доки курятся с трудом, а сроки горят. Заранее спасибо
Доброго дня. К сожалению, давно не заходил на Хабр, не увидел Вашего вопроса во время.
Насколько я понял Вашу задачу, Вы строите граф Вашей проблемы и при переходе от теста к тесту хотите выполнять ещё какие-то функции зависимые именно от этих двух тестов: текущего и следующего. Если это так, то, в принципе, всё просто, при создании дуги между узлами 2 и 3 просто добавляете нужные Вам параметры, и затем, при обходе вызываете нужную Вам функцию с параметрами сохранёнными в дуге.
Если Вам нужно ещё и разные функции вызывать, то предлагаю записывать параметр в виде JSON строки, как-то так: "{'function_name':'func_1','param_1':'p1','param_2':'p2'}". Тогда парсите эту строку в объект, и вызываете то, что нужно с требуемыми параметрами.
G.add_edge(2,3,weight=0.9) # задаётся значение атрибута weight
NetworkX для удобной работы с сетевыми структурами