ДОТ является графиком язык описания. Графики DOT обычно представляют собой файлы с расширением имени файла gv или точкой . Расширение г.в. является предпочтительным, чтобы избежать путаницы с расширением точки , используемой версии Microsoft Word до 2007 года [1]
Расширения имени файла | .gv |
---|---|
Тип интернет-СМИ | текст / vnd.graphviz |
Тип формата | График язык описания |
Открытый формат ? | да |
Различные программы могут обрабатывать DOT файлы. Некоторые из них , такие как точки , Neato , twopi , Сирко , СвДП и ПРМФ , может прочитать файл DOT и сделать его в графическом виде. Другие, такие как gvpr , дс , ациклические , ccomps , sccmap и тред , прочтите DOT файлы и выполнять вычисления на представленную диаграмме. И, наконец, другие, такие как левша , Dotty и граппа , обеспечивает интерактивный интерфейс. GVeditинструмент сочетает в себе текстовый редактор с неинтерактивным просмотром изображений. Большинство программ являются частью пакета Graphviz или используют его для внутренних целей.
Синтаксис
Типы графиков
Ненаправленные графы
В самом простом ДОТ может быть использован для описания неориентированного графа . Ненаправленный граф показывает простые отношения между объектами, например дружбу между людьми. График используется ключевое слово , чтобы начать новый граф, и узлы описаны в фигурные скобки. Двойной дефис (-) используется для обозначения отношений между узлами.
// Имя графика и точки с запятой необязательныГрафик graphname { - б - с ; б - д ; }
Направленные графы
Подобно неориентированному DOT можно описать ориентированные графы , такие как блок - схемы и зависимости дерев . Синтаксис такой же , как и для неориентированных графов, за исключением того , Орграф используется ключевое слово , чтобы начать график, а стрелка (->) используется , чтобы показать взаимоотношения между узлами.
digraph graphname { -> б -> гр ; б -> д ; }
Атрибуты
К графам, узлам и ребрам в файлах DOT можно применять различные атрибуты. [2] Эти атрибуты могут управлять такими аспектами, как цвет, форма и стили линий. Для узлов и ребер, один или более пар атрибут-значение помещаются в квадратные скобки ([]) после того, как заявление , и перед точкой с запятой (который является необязательным). Атрибуты графа указываются как прямые пары атрибут-значение под элементом графа, где несколько атрибутов разделяются запятыми или используют несколько наборов квадратных скобок, а атрибуты узла помещаются после оператора, содержащего только имя узла, но не отношения между точками.
График graphname { // Этот атрибут применяется к самому графику размер = "1,1" ; // Атрибут метки может использоваться для изменения метки узла а [ label = "Foo" ]; // Здесь форма узла изменяется. б [ форма = коробка ]; // Эти края и имеют разные свойства линии - Ь - с [ цвет = синим ]; б - д [ стиль = пунктир ]; // [стиль = невидимость] Шкуры узел.}
HTML-подобные ярлыки доступны только в версиях Graphviz новее середины ноября 2003 г., в частности, они не считаются частью версии 1.10. [3]
Комментарии
Dot поддерживает С и С ++ стиль одну строку и несколько строк комментариев . Кроме того, она игнорирует строки с символом знака числа (#) в качестве первого символа.
// Это однострочный комментарий./* Это многострочный комментарий. * /# Подобные строки также игнорируются.
Простой пример
Ниже приведен пример сценария , который описывает связующий структуру этана молекулы. Это неориентированный граф, содержащий атрибуты узлов, как описано выше.
График этана { C_0 - H_0 [ type = s ]; C_0 - H_1 [ тип = ы ]; C_0 - H_2 [ тип = ы ]; C_0 - C_1 [ type = s ]; C_1 - H_3 [ тип = ы ]; C_1 - H_4 [ тип = ы ]; C_1 - H_5 [ тип = ы ]; }
Программы верстки
Язык DOT определяет граф, но не предоставляет средств для его визуализации. Есть несколько программ, которые могут быть использованы для визуализации, просматривать и манипулировать графики на языке DOT:
Общий
- Graphviz - это набор библиотек и утилит для управления и визуализации графики
JavaScript
- Canviz - это JavaScript библиотека для визуализации DOT файлов [4]
- d3-Graphviz - это JavaScript библиотека на основе Viz.js и D3.js , что делает DOT графиков и поддерживают анимированные переходы между графиками и манипуляцией интерактивной графики [5]
- Vis.js - это JavaScript библиотека , которая принимает DOT в качестве входных данных для сетевых графиков. [6]
- Viz.js - порт Graphviz на JavaScript, который предоставляет простую оболочку для использования в браузере.
- HPCC-JS / wasm Graphviz - библиотека быстро WASM для Graphviz похож на Viz.js [7]
Ява
- Gephi - интерактивная платформа визуализации и исследования для всех видов сетей и сложных систем, динамических и иерархических графов
- Grappa - частичный перенос Graphviz на Java
- graphviz-java - частичный перенос Graphviz на Java с открытым исходным кодом, доступный на github.com
- ZGRViewer - зритель ДОТ [8]
Другой
- Beluging - программа просмотра расширений DOT и Beluga на базе Python и Google Cloud Platform
- dot2tex - программа для преобразования файлов из DOT в PGF / TikZ или PSTricks , оба из которых отображаются в LaTeX [9]
- OmniGraffle - приложение для цифровых иллюстраций для macOS, которое может импортировать подмножество DOT, создавая редактируемый документ (но результат не может быть экспортирован обратно в DOT)
- Tulip - программный фреймворк на C ++, который может импортировать файлы DOT для анализа [10]
- VizierFX - Apache Flex библиотеки графа рендеринга в ActionScript [11]
Ограничения
Можно указать детали макета с DOT, хотя и не все инструменты, которые реализуют язык обратить внимание DOT атрибутам позиции. Таким образом, в зависимости от используемых инструментов, пользователи должны полагаться на автоматизированные алгоритмы компоновки (потенциально приводящие к неожиданному результату) или узлы, утомительно размещаемые вручную.
Например:
Орграф г { узел [ форма = открытый текст ]; A1 -> B1 ; A2 -> B2 ; A3 -> B3 ; А1 -> А2 [ этикетка = F ]; А2 -> А3 [ этикетка = г ]; B2 -> B3 [ label = "g '" ]; В1 -> В3 [ этикетка = "(GOF) '" tailport = s headport = s ]; { ранг = такой же ; A1 A2 A3 } { ранг = такой же ; В1 В2 В3 } }
Есть две проблемы в изображении под названием «Изображение , которое , кажется , неправильно оказанные». Квадрат справа не является идеальным квадратом, и некоторые метки не находятся рядом со связанной стрелкой ((gof) '), а некоторые перекрывают стрелки.
Это можно исправить с помощью Inkscape или других редакторов SVG . В некоторых случаях это также можно исправить, используя атрибут pos, чтобы указать позицию, и атрибут веса, чтобы возвести график в квадрат.
Смотрите также
- lisp2dot инструмент для преобразования Lisp языка программирования -like программ дерев на DOT язык. Разработан для использования с генетическим программированием .
Заметки
- ^ "Расширение файла .dot или .gv?" . marc.info . Проверено 8 марта 2011 .
- ^ «Узел, Эдж и график Атрибуты» . graphviz.org . Проверено 12 мая 2017 .
- ^ «Формы узлов: метки, похожие на HTML» . graphviz.org . Проверено 12 мая 2017 .
- ^ «canviz: графвиз на холсте» . Источник 2017-06-02 .
- ^ "GitHub - magjac / d3-Graphviz: Graphviz DOT рендеринга и анимированные переходы с использованием D3" . github.com . Проверено 6 июня 2018 .
- ^ «Импорт данных в DOT языке» . vis.js . Проверено 22 декабря 2018 .
- ^ "СКЦ-JS / wasm" . Проверено 21 октября 2020 .
- ^ "ZGRViewer" . zvtm.sourceforge.net . Проверено 12 мая 2017 .
- ^ «dot2tex - это Graphviz латексного преобразователя» . dot2tex.readthedocs.io . 2019-11-01.
- ^ «Визуализация данных программного обеспечения - Тюльпан» . tulip.labri.fr . Проверено 12 мая 2017 .
- ^ "GitHub - gvhung / vizierfx: Автоматически экспортируемые из code.google.com/p/vizierfx" . github.com . Проверено 12 мая 2017 .
Внешние ссылки
- DOT учебник и спецификация
- Рисование графиков с точкой
- Атрибуты узла, края и графика
- Узел Форма
- Галерея примеров
- Описания Webapp генерации DOT из деревьев Хаффмана
- Визуализация онлайн-графиков в SVG
- Повысьте Graph Library