Comments 35
Спасибо. Весьма кстати.
Если блуждать взглядом по второй картинке ДПВ, мне одному кажется, что они шевелятся?
Это потомучто 2 ночи или всётаки какой-то оптический эффект?
Это потомучто 2 ночи или всётаки какой-то оптический эффект?
Просто глаз выпуклый, а картинка плоская, вот при перемещении зрачка окружающие фокус мелкие детали получают иллюзию движения.
На этом некоторые оптические иллюзии построены.
На этом некоторые оптические иллюзии построены.
вроде бы для подобной иллюзии должен быть определённый дрифт контраста цвета у «движущихся» элементов: www.michaelbach.de/ot/mot_snakeAdLib/index.html
а тут этого явно нету.
а тут этого явно нету.
Возможно конечно усталость глаз после рабочего дня также делает своё дело. Одно скажу, это не спец-эффект, там простой цикл генерации всевозможных графов до шести узлов включительно.
networkx.lanl.gov/examples/drawing/atlas.html
networkx.lanl.gov/examples/drawing/atlas.html
У меня всего 12 ночи, а они шевелятся.
Нет. Идите спать )
Ещё б классно посмотреть визуализацию в 3d. И может ли оно подписывать дуги/вершины?
PS Ссылочку на networkx.lanl.gov/reference/drawing.html подправьте пожалуйста
PS Ссылочку на networkx.lanl.gov/reference/drawing.html подправьте пожалуйста
Подправил. Подписывать конечно может. И дуги и вершины. Вот к примеру орграф
В 3d это выглядит примерно так: .
Вот ссылка на проект:
Вот ссылка на проект:
Сорри, кармы не хватает для отображения ссылок. Проект называется ostis.net. Видео можно найти на ютюбе.
Там точно NetwokX используется? Нашёл на youtube только это видео с трёхмерным графом и ostis.net www.youtube.com/watch?v=kRCE6_tmdso&feature=related
А по существу:
там уже починили проблемы с хранением юникода в качестве меток узлов/дуг и выводом этого в dot, или положились на питон 3.x?
там уже починили проблемы с хранением юникода в качестве меток узлов/дуг и выводом этого в dot, или положились на питон 3.x?
Как глянул на рисунок — топологии простых графов, к-а-а-а-а-к представил себе такую рабочую сеть — сразу захотелось повеситься.
А за либу мерси — можно поиграться на досуге.
А за либу мерси — можно поиграться на досуге.
Полезно. Для некоторых задач не нужно будет выдумывать велосипеды.
Хотя иногда графы приятно самому «прочувствовать».
Хотя иногда графы приятно самому «прочувствовать».
Скажите, а как можно по-нормальному нарисовать дерево заданное в виде ориентированного графа?
Что Вы подразумеваете под «нормально»?
Graphviz даёт больше контроля, но и чуть сложней в использовании. По умолчанию для визуализации используется matplotlib, которая имеет своё представление как надо лучше. В принципе можно получить что-то похожее на это:
Graphviz даёт больше контроля, но и чуть сложней в использовании. По умолчанию для визуализации используется matplotlib, которая имеет своё представление как надо лучше. В принципе можно получить что-то похожее на это:
Извините, что не уточнил сразу.
Я хочу рисовать планарный граф, у которого все вершины одного яруса лежат на одной прямой.
Например вот так:
Я хочу рисовать планарный граф, у которого все вершины одного яруса лежат на одной прямой.
Например вот так:
Готовой функции для такого дерева я там не видел. Меня вполне устроило дерево из моего предыдущего коммента и я просто глубже не копал.
Уверен, можно настроить и для вывода планарного графа. NetworkX заточен под работу с данными и визуализация вторична.
Вот документация
networkx.lanl.gov/reference/drawing.html
Также никто не мешает использовать другие либы для вывода изображений.
Возможно кто-нибудь другой сталкивался и отпишется
Уверен, можно настроить и для вывода планарного графа. NetworkX заточен под работу с данными и визуализация вторична.
Вот документация
networkx.lanl.gov/reference/drawing.html
Также никто не мешает использовать другие либы для вывода изображений.
Возможно кто-нибудь другой сталкивался и отпишется
dot сам рисует деревья «нормально», хотя строгое выравнивание не гарантируется.
Насколько я понимаю, DOT — это язык и сам он ничего не рисует, есть программы для визуализации.
Дело в том, что есть готовый набор скриптов на python, которые уже юзают networkx в данный момент.
И если использовать dot для python, то для этого видел только одну либу: python-graph, а значит нужно либо переходить на него, либо писать модуль для экспорта networkx графов в DOT. Оба варианта достаточно затратные по времени.
Спасибо за информацию по DOT
Дело в том, что есть готовый набор скриптов на python, которые уже юзают networkx в данный момент.
И если использовать dot для python, то для этого видел только одну либу: python-graph, а значит нужно либо переходить на него, либо писать модуль для экспорта networkx графов в DOT. Оба варианта достаточно затратные по времени.
Спасибо за информацию по DOT
В статье на вики о DOT упоминается Graphviz, так-что networkx.lanl.gov/pygraphviz/ вполне должен работать с ним. Я так понимаю его разрабатывают те же, кто и NetworkX
в пакет graphviz входит несколько утилит для рисования, реализующих разные алгоритмы расклада:
dot, neato, circo, итп
вот тот, который /usr/bin/dot — рисует «нормально»
dot, neato, circo, итп
вот тот, который /usr/bin/dot — рисует «нормально»
в networkx есть функция write_dot которая выводит граф в формате dot
И делает это она используя pygraphviz, который в свою очередь является обёрткой над graphviz
Да вот только что во время написания скрипта на неё наткнулся, пошёл сюда написать, а вы уже ответили.
Спасибо, буду юзать.
Спасибо, буду юзать.
networkx.write_dot завязан на pygraphviz, который под windows в чистом виде не поставляется.
После правок инсталяционного файла и компиляции нужной библиотеки при помощи Visual Studio ничего не заработало.
Ждём пока у разработчика pygraphviz появится девелоперская машина под windows. К слову говоря, времени, потраченного на попытки установить pygraphviz под windows хватило бы на реализацию визуализации networkx дерева на matplotlib.
В любом случае спасибо за советы.
После правок инсталяционного файла и компиляции нужной библиотеки при помощи Visual Studio ничего не заработало.
Ждём пока у разработчика pygraphviz появится девелоперская машина под windows. К слову говоря, времени, потраченного на попытки установить pygraphviz под windows хватило бы на реализацию визуализации networkx дерева на matplotlib.
В любом случае спасибо за советы.
Доброго времени суток! Пытаюсь написать автотест, основанный на рохождении орграфа. В вашей статье написано про встраивание функции в ребро. Можете показать чуть более развернутый пример с обходом графа и выполнением функций на рёбрах? Доки курятся с трудом, а сроки горят. Заранее спасибо
Доброго дня. К сожалению, давно не заходил на Хабр, не увидел Вашего вопроса во время.
Насколько я понял Вашу задачу, Вы строите граф Вашей проблемы и при переходе от теста к тесту хотите выполнять ещё какие-то функции зависимые именно от этих двух тестов: текущего и следующего. Если это так, то, в принципе, всё просто, при создании дуги между узлами 2 и 3 просто добавляете нужные Вам параметры, и затем, при обходе вызываете нужную Вам функцию с параметрами сохранёнными в дуге.
Если Вам нужно ещё и разные функции вызывать, то предлагаю записывать параметр в виде JSON строки, как-то так: "{'function_name':'func_1','param_1':'p1','param_2':'p2'}". Тогда парсите эту строку в объект, и вызываете то, что нужно с требуемыми параметрами.
Насколько я понял Вашу задачу, Вы строите граф Вашей проблемы и при переходе от теста к тесту хотите выполнять ещё какие-то функции зависимые именно от этих двух тестов: текущего и следующего. Если это так, то, в принципе, всё просто, при создании дуги между узлами 2 и 3 просто добавляете нужные Вам параметры, и затем, при обходе вызываете нужную Вам функцию с параметрами сохранёнными в дуге.
Если Вам нужно ещё и разные функции вызывать, то предлагаю записывать параметр в виде JSON строки, как-то так: "{'function_name':'func_1','param_1':'p1','param_2':'p2'}". Тогда парсите эту строку в объект, и вызываете то, что нужно с требуемыми параметрами.
G.add_edge(2,3,weight=0.9) # задаётся значение атрибута weight
Sign up to leave a comment.
NetworkX для удобной работы с сетевыми структурами