Спойлер: используйте Vizdom.dev для рендеринга DAG, написанных на языке DOT.
Как разработчик программного обеспечения, я иногда работал с группами DAG, большинство из которых предполагало их визуализацию. Во многих случаях мне было трудно получить быстрый рендеринг, и мне приходилось искать инструменты.
К счастью, есть надежный
Кроме…
*Хорошо, технически Graphviz можно скомпилировать в WebAssembly, и нескольким талантливым людям удалось создать несколько изящных проектов, таких как Dreampuf.
Например, я хочу сохранить свой график в
я мог бы использовать
К сожалению, мне приходится переводить DOT в уценку, которую требует Mermaid. Для небольших текстовых представлений я могу использовать ChatGPT для их преобразования, но он часто допускает грамматические ошибки, и график отказывается отображать, что делает его ненадежным источником автоматизации.
Тогда есть
Да, я построил
…И он полностью построен на Rust 🦀 за большое спасибо
tl;dr — простое специально созданное приложение для быстрой визуализации DAG в Интернете.
Минимизация пересечений ребер при построении графов — признанная NP-сложная задача — является ключом к созданию визуально привлекательных графов. Команда Terrastruct опубликовала выдающуюся
Эта версия особенно эффективна для рендеринга иерархических графиков, учитывая всю сложность этой проблемы.
Рендеринг больших DAG (более 500 узлов/ребер) с помощью Graphviz имеет тенденцию быть несколько медленным. Дагре + D3 (
Я считаю, что это хороший компромисс для типов атрибутов, которые будет использовать DOT.
Ну, это сравнение яблок и апельсинов. Graphviz по-прежнему создает отличные визуализации и поддерживает больше
Да, я знаю, что ужасно сравнивать годы опыта и инструментов с более чем 30-летней полосой работы Graphviz, но для моего узкого случая использования это безумно быстро. Вот несколько результатов рендеринга на моем M1 Macbook Pro.
* Сбой, потому что флаг emscripten ALLOW_MEMORY_GROWTH=1
не установлен, поэтому общий объем памяти ограничен 16 МБ. Это можно исправить, но я не нашел онлайн-проекта, который мог бы обработать рассматриваемый граф.
** Пример графика отображается при выборе Example 14
в представлении редактора. Обновление страницы приведет к ее обновлению и получению ошибки 414, поскольку URI, сохраняющийся в графе, слишком велик. Я работаю над лучшим решением для хранения больших графиков.
Вы заметите, что когда вы вносите какие-либо изменения в файл DOT, URL-адрес немедленно обновляет несколько параметров запроса для хранения параметров графика и макета, что позволяет вам всегда ссылаться на копию ваших данных, просто сохранив ссылку!
Есть одна загвоздка: большие графы имеют тенденцию делать URI слишком большим для AWS (где
В настоящее время я работаю над решением для обработки больших графиков, но тем временем я включил несколько способов сохранения и хранения графиков:
Вот пример того, как выглядит вид редактора
Перейдите в представление редактора и загрузите Example 42
Иногда мне приходилось сравнивать два созданных мной графика, поэтому я добавил
Легенда цвета:
Вот несколько снимков:
Нажмите меня: изменение идентификатора узла с «e» на «f»
Нажмите меня: добавление «cluster=true»
Если у вас есть какие-либо отзывы, пожалуйста, напишите мне на
Спасибо за прочтение. Если вам понравилась эта статья, подписывайтесь !
[1]: Э.Р. Ганснер, Э. Кутсофиос, С.К. Норт и К. . -П. Во, «Техника рисования ориентированных графов», в IEEE Transactions on Software Engineering, vol. 19, нет. 3, стр. 214–230, март 1993 г., doi: 10.1109/32.221135.
Также опубликовано здесь