Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Beyond Linux From Scratch. Version 2011-12-30
Назад 10. Утилиты общего назначения Вперед

Пакет Graphviz-2.26.3

Знакомимся с пакетом Graphviz

В пакете Graphviz находятся программы визуализации графов. Визуализация графов является способом представления структурной информации в виде диаграмм, представляющих собой абстрактные графы и сети. В Graphviz есть несколько основных программ отображения графов на плоскости. В нем также есть веб интерфейс и графический интерактивный интерфейс, вспомогательные инструментальные средства, библиотеки и средства состыковки с языками.

Программы из пакета Graphviz, отображающие графы, получают описания графов в виде текста на простом языке и создают диаграммы в нескольких форматах, например, в виде обычных изображений и SVG - для веб-страниц, на Postscript - для включения в PDF или в другие документы, либо создают объекты, которые будут отображаться в интерактивном графическом браузере. (Graphviz также поддерживает формат GXL - диалект XML). На практике, графы обычно создаются из внешних источников данных, но их можно создавать и изменять вручную, либо прямо в исходном текстовом файле, либо в графическом редакторе. (Graphviz не предназначен для замены Visio, так что, вероятно, вы будете разочарованы, если попытаетесь использовать его в этой роли).

Этот пакет используется для автоматического рисования графов, что может оказаться важным в инженерии программ, базах данных и веб-дизайне, для создания сетей, а также для создания визуальных интерфейсов во многих других областях. В Graphviz есть множество полезных возможностей, доступных при построении конкретных диаграмм, например, можно выбрать цвет, шрифты, расположения узлов, стиль линий, гиперссылки и задать формы используемых элементов графа.

Информация о пакете

Зависимости пакета Graphviz

Необязательные

Expat-2.0.1, FreeType-2.4.8, Fontconfig-2.8.0,freeglut-2.6.0, libpng-1.5.5, система X Window,Pango-1.29.4 (сборка с поддержкой cairo), gtk+-2.24.8, libglade-2.6.4, librsvg-2.26.3, GPL Ghostscript-9.04, Tcl-8.5.10, Tk-8.5.9, DevIL, libLASi, glitz, GD Library, libjpeg-8c (только если используется внутренняя копия исходного кода библиотеки GD) и Electric Fence

Необязательные (для сборки интерфейса с языками)

SWIG (должен быть установлен пакет SWIG, иначе интерфейсы для языков программирования собраны не будут), Guile-2.0.3, IcedTea6-1.9.7 или JDK-6 Update 18, PHP-5.3.8, Python-2.7.2, Ruby-1.9.2-p290, Tcl-8.5.10, C# (DotGNU Portable.NET или Mono), Io, R, Lua и Objective Caml

Замечания для пользователей: http://wiki.linuxfromscratch.org/blfs/wiki/graphviz

Установка пакета Graphviz

Установите пакет Graphviz с помощью следующих команд:

./configure --prefix=/usr &&
make

В составе этого пакета нет набора тестов, позволяющего получить значимые результаты.

Теперь в роли пользователя root выполните:

make install

Если хотите, создайте в директории с системными документами символическую ссылку на документацию, установленную в директории /usr/share/graphviz/doc; для этого в роли пользователя root используйте следующую команду:

ln -v -s /usr/share/graphviz/doc \
         /usr/share/doc/graphviz-2.26.3

Конфигурирование пакета Graphviz

Конфигурационные файлы

/usr/lib/graphviz/config

Подробнее о конфигурировании

К конфигурации пакета Graphviz не предъявляется никаких требований. Вы можете установить дополнительные плагинов и инструментальные средства, доступные со страницы загрузки на http://www.graphviz.org/Download_source.php и получить дополнительные возможности. Если дополнительные плагины установлены, вы можете запустить команду dot_static -c (в роли пользователя root) и обновить файл config в директории /usr/lib/graphviz.

Описание пакета

Установленные программы: acyclic, bcomps, ccomps, circo, dijkstra, dot, dot2gxl, dot_static, dotty, fdp, gc, gvcolor, gvpack, gvpr, gxl2dot, lefty, lneato, nop, prune, sccmap, tred, twopi и unflatten

Установленные библиотеки: libagraph.{so,a}, libcdt.{so,a}, libexpr.{so,a}, libgraph.{so,a}, libpack.{so,a}, libpathplan.{so,a}, дополнительные библиотеки поддержки и интерфейсы с языками

Установленные директории: /usr/include/graphviz, /usr/lib/graphviz и /usr/share/graphviz

Краткое описание

acyclic

это фильтр, который получает на входе ориентированный граф и выдает копию графа с реверсными ребрами, которых достаточно, чтобы сделать граф ациклическим. Реверсное ребро наследует все атрибуты оригинального ребра

bcomps

разбивает графы на его двусвязные компоненты, выдает компоненты в стандартный входной поток

ccomps

разбивает графы на его связные компоненты, выдает компоненты в стандартный входной поток

circo

рисует графы, используя для этого циклическую компоновку. Инструмент определяет двусвязные компоненты и рисует вершины каждого компонента по кругу. Затем при помощи рекурсивного радиального алгоритма строится дерево сочленения блоков. Пересечения ребер в круге сведены к минимуму за счет размещения по периметру круга такого количества ребер, сколько окажется возможным. В частности, если компонент внешнепланарный, то это значит, что его можно расположить на плоскости.

dijkstra

читает поток графов и для каждого вычисляет расстояние каждого узла от исходного узла

dot

рисует ориентированные графы. Хорошо работает с графами DAG (ориентированный ациклический граф) и другими, которые можно отобразить в виде иерархии. Считывает файлы с графами с атрибутами и выдает их изображения. По умолчанию, выходной формат dot представляет собой входной файл с добавленными к нему координатами, указывающими позицию узла

dot2gxl

осуществляет преобразование графов, представленных на языке DOT, в формат GXL. Если с помощью флага не указан тип преобразования, dot2gxl определит преобразование по суффиксу входного файла; суффикс .dot указывает, что будет выполняться преобразование из DOT в GXL, а суффикс .gxl указывает, что будет выполняться преобразование из GXL к DOT

dot_static

версия dot, в которой все библиотеки Graphviz скомпилированы статически

dotty

является редактором графов системы X Window. Можно запустить как отдельный редактор или использовать в качестве интерфейса для приложений, использующих графы. Может управлять несколькими окнами с различными изображениями графов

fdp

Рисует неориентированные графы с использованием модели "spring". Используется директивный (force-directed) подход в стиле Фрачтермана (Fruchterman) и Рейнгольда (Reingold)

gc

аналог программы wc для графов, с помощью которой в стандартный выходной поток выдается число узлов, ребер, связанных компонентов или кластеров, содержащихся во входных файлах. Если задано более одного графа, то также выдается общее количество всех графов

gvcolor

это фильтр, который устанавливает значения цвета узлов относительно первоначально заданных значений. Цвет улов рассчитывается вдоль ориентированных ребер по направлению, указываемому ребрами (как вектора HSB). Граф уже должен быть обработан программой dot

gvpack

читает во входном потоке графы, объединяет графы в единую компоновку, позволяющую разместить их на плоскости и содает один граф, представляющий собой объединение (union) входных графов. Входные графы должны быть в формате dot и для них всех уже должна быть информация об их размещении на плоскости

gvpr

потоковый редактор графов, созданный по влиянием редактора awk. Он копирует графы, поступающие на его вход, в выходной поток, при этом, возможно, преобразует их структуру и атрибуты, создает новые графы или выдает информацию произвольного вида

gxl2dot

преобразует графы, представленные в формате GXL, на язык DOT. Если с помощью флага не указан тип преобразования, gxl2dot определит преобразование по суффиксу входного файла; суффикс .dot указывает, что будет выполняться преобразование из DOT в GXL, а суффикс .gxl указывает, что будет выполняться преобразование из GXL к DOT

lefty

это графический редактор, предназначенный работы с чертежами

lneato

является редактором графов системы X Window. Можно запустить как отдельный редактор или использовать в качестве интерфейса для приложений, использующих графы. Может управлять несколькими окнами с различными изображениями графов

nop

читает поток графов и выдает их в выходной поток в красивом (каноническом) формате с использованием отступов. Если файлы не заданы, то чтение осуществляется из стандартного входного потока

prune

читает ориентированные графы в том же самом формате с помощью программы dot и удаляет подграфы с корнем в узлах, указанных в командной строке с помощью параметров. Эти узлы сами не удаляются, но их легко можно пометить атрибутами так, что их легко можно будет найти с помощью потокового редактора графов, например, gpr. prune корректно обрабатывает циклы, петли и множественные ребра

sccmap

разбивает орграфы на сильно связные компоненты и вспомогательное отображение связей между компонентами. В этом отображении каждый компонент сворачивается в узел. Результирующие графы выдаются в стандартный выходной поток. Количество узлов, ребер и сильно связных компонент выдается в стандартный поток ошибок. Программа sccmap является инструментом разбиения больших графов на меньшие и лучше управляемые части

tred

вычисляет транзитивной сокращение ориентированных графов и выдает результирующие графы в стандартный выходной поток. При этом удаляются ребра, для которых предполагается транзитивность. Узлы и подграфы при этом не затрагиваются. "Смысл" и обоснованность приведенных графов зависит от приложения. tred особенно полезен как препроцессор для dot, позволяющий избежать путаницы в больших изображениях графов

twopi

изображает графы с использованием радиальной компоновки. Как правило, один узел выбирается в качестве центра и помещается в начало координат. Остальные узлы размещаются на последовательности концентрических окружностей с центром в начале координат, при этом для каждого узла задается фиксированное радиальное расстояние от предыдущего круга

unflatten

является препроцессор для dot, который используется для улучшения соотношений в графах, имеющих много листьев или недостижимых узлов. Изображение такого графа на плоскости обычно широкое или высокое. unflatten вставляет невидимые ребра или регулирует minlen для ребер с тем, чтобы повысить компактность размещения

libagraph.{so,a}

поддерживает программирование операций с графами, предоставляя для этого средства работы с графами в памяти и средства чтения и записи файлов, содержащих графы. Для графов, узлов и ребер можно указывать атрибуты, которые может определять программист, и пары строк имя-значение. Графы состоят из узлов, ребер и вложенных подграфов. Библиотека libagraph, когда с ее помощью строится преставление, использует исключительно библиотеку libcdt (бывшую libdict)

libcdt.{so,a}

управляет словарями времени выполнения с использованием стандартных контейнеров типов данных: неупорядоченные множества set/multiset, упорядоченные множества set/multiset , списки, стеки и очереди

libexpr.{so,a}

библиотека выражений, похожих на язык C

libgraph.{so,a}

поддерживает работу в памяти с ориентированными и неориентированными графами, имеющими атрибуты, и осуществляет чтение и запись файлов, содержащих графы. Графы состоят из узлов, ребер и вложенных подграфов. Подграф может содержать любые узлы и ребра его родителей, и может перенаправляться в любую функцию libgraph при помощи указателя на граф график указатель, за исключением тех, для которых созданы новые атрибуты (для которых требуется основной граф)

libpack.{so,a}

поддерживает использование связных компонент в контексте компоновки графов в случае, когда используются другие библиотеки Graphviz. Один набор функций может использоваться для анализа единичного графа и разбиения на отдельные связные компоненты. Комплиментарный набор функций берет коллекцию графов (не обязательно являющихся компонентами одного графа), которые были размещены на плоскости поотдельности, и сравнительно плотно упаковывает их вместе. Упаковка производится с использованием полиномиального алгоритма К. Фрейвальдса (K. Freivalds) и др.

libpathplan.{so,a}

содержит функции поиска кратчайшего пути между двумя точками в простом многоугольнике

Перевод сделан с варианта оригинала, датированного 2010-09-08 06:26:20 +0000


Предыдущий раздел: Оглавление Следующий раздел:
Пакет libiodbc-3.52.7   Пакет Recode-3.6