Graphviz — это набор программных инструментов и библиотек для автоматического проектирования и визуализации графов, представляющих собой вершины и рёбра. Он использует описательный язык DOT для задания структуры графа и предоставляет движки раскладки, которые вычисляют положение вершин и маршруты рёбер с учётом различных алгоритмов и параметров. Результатом работы Graphviz являются графические представления в разнообразных векторных и растровых форматах, включая SVG, PDF и PNG, что делает его полезным для документирования структур данных, моделирования связей и построения диаграмм зависимостей.
Проект возник как инструмент для научных и инженерных задач, связанных с визуализацией сетей и иерархий, и эволюционировал в набор автономных утилит и библиотек, интегрируемых в различные среды разработки и автоматизации сборки документации. Graphviz поддерживает ориентированные и неориентированные графы, атрибуты для настройки внешнего вида элементов (форма, цвет, подписи, стилевые параметры) и несколько алгоритмов размещения (например, для ориентированных графов и для диаграмм связности). Разделение на генераторы раскладки и вспомогательные утилиты обеспечивает гибкость использования в скриптах и приложениях.
- Поддержка языка описания DOT для текстового задания вершин, рёбер и атрибутов.
- Несколько алгоритмов раскладки для ориентированных и неориентированных графов.
- Экспорт в векторные и растровые форматы (SVG, PDF, PNG и др.).
- Настраиваемые атрибуты визуализации: форма вершин, стрелки, цвета, шрифты и подписи.
- Командные утилиты для пакетной обработки и интеграции в пайплайны генерации документации.
- Библиотеки и API для встраивания в приложения и расширения возможностей визуализации.
- Возможность работы с большими графами и оптимизаций отображения для улучшения читаемости.
- Совместимость с инструментами преобразования и постобработки для подготовки публикаций и демонстраций.