Spec-Zone.ru › Graphviz

Атрибуты

Инструкции по настройке макета узлов, рёбер, графов, подграфов и кластеров Graphviz.

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

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

Все атрибуты Graphviz задаются парами «имя-значение». Таким образом, чтобы задать color узла abc, нужно использовать

digraph {
  abc [color = red]
}
Редактировать в редакторе

Аналогично, чтобы задать стиль наконечника стрелки ребра abc -> def, нужно использовать:

digraph {
  abc -> def [arrowhead = diamond]
}
Редактировать в редакторе

Дополнительные сведения о задании атрибутов приведены в описании языка DOT.

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

Примечание: Некоторые атрибуты, например dir или arrowtail, неоднозначны при использовании в DOT с неориентированным графом, поскольку понятия начала и конца ребра в таком графе не имеют смысла. Согласно принятому соглашению, при первом появлении неориентированного ребра анализатор DOT назначает левый узел начальным, а правый — конечным. Например, у ребра A -- B начальным будет узел A, а конечным — B. Пользователь отвечает за единообразную обработку таких рёбер. Если ребро появляется позднее в следующем формате

graph {
  B -- A [taillabel = "tail"]
}
Редактировать в редакторе

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

Инструменты принимают стандартные представления типов int и double в языке C. Для типа bool значения TRUE представляются как true или yes (без учёта регистра), а также любым ненулевым целым числом; значения FALSE — как false или no (без учёта регистра) и нулём. Кроме того, существует ряд специализированных типов, таких как arrowType, color, point и rankdir. Допустимые значения для этих типов перечислены в конце.

Столбец Используется в указывает, к каким компонентам графа применяется атрибут.

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

Имя Используется Тип По умолчанию Минимум Описание, примечания
_background Графы xdot <none> Строка в формате xdot, задающая произвольный фон.
area Узлы, кластеры double 1.0 >0 Задает предпочтительную площадь узла или пустого кластера. Только для patchwork.
arrowhead Ребра arrowType normal Стиль наконечника стрелки на конечном узле ребра.
arrowsize Ребра double 1.0 0.0 Множитель масштаба для наконечников стрелок.
arrowtail Ребра arrowType normal Стиль наконечника стрелки на начальном узле ребра.
bb Кластеры, графы rect Ограничивающая рамка рисунка в пунктах. Только для записи.
beautify Графы bool false Следует ли равномерно располагать листовые узлы по кругу вокруг корневого узла в sfdp. Только для sfdp.
bgcolor Графы, кластеры color, colorList <none> Цвет фона холста.
center Графы bool false Следует ли центрировать рисунок на выходном холсте.
charset Графы string "UTF-8" Кодировка символов, используемая при интерпретации строкового ввода как текстовой метки.
class Ребра, узлы, кластеры, графы string "" Имена классов, добавляемые к SVG-элементу узла, ребра, графа или кластера. Только для svg.
cluster Кластеры, подграфы bool false Является ли подграф кластером.
clusterrank Графы clusterMode local Режим обработки кластеров. Только для dot.
color Ребра, узлы, кластеры color, colorList black Основной цвет графических элементов, кроме текста.
colorscheme Ребра, узлы, кластеры, графы string "" Пространство имен цветовой схемы: контекст для интерпретации имен цветов.
comment Ребра, узлы, графы string "" Комментарии добавляются в выходные данные.
compound Графы bool false Если значение истинно, разрешает ребра между кластерами. Только для dot.
concentrate Графы bool false Если значение истинно, используются концентраторы ребер.
constraint Ребра bool true Если значение ложно, ребро не используется при ранжировании узлов. Только для dot.
Damping Графы double 0.99 0.0 Коэффициент затухания сил, вызывающих движение. Только для neato.
decorate Ребра bool false Следует ли соединить метку ребра с ребром линией.
defaultdist Графы double 1+(avg. len)*sqrt(|V|) epsilon Расстояние между узлами в отдельных связных компонентах. Только для neato.
dim Графы int 2 2 Задает число измерений, используемых для компоновки. Только для neato, fdp, sfdp.
dimen Графы int 2 2 Задает число измерений, используемых для визуализации. Только для neato, fdp, sfdp.
dir Ребра dirType forward (ориентированный)
none (неориентированный)
Тип ребра для отрисовки наконечников стрелок.
diredgeconstraints Графы string, bool false Следует ли ограничивать направление большинства ребер вниз. Только для neato.
distortion Узлы double 0.0 -100.0 Коэффициент искажения для shape=polygon.
dpi Графы double 96.0 0.0 Задает ожидаемое число пикселей на дюйм на устройстве отображения. Только для растрового вывода и svg.
edgehref Ребра escString "" Синоним edgeURL. Только для map и svg.
edgetarget Ребра escString <none> Окно браузера, используемое для ссылки edgeURL. Только для map и svg.
edgetooltip Ребра escString "" Всплывающая подсказка, прикрепленная к части ребра вне метки. Только для cmap и svg.
edgeURL Ребра escString "" Ссылка для частей ребра вне метки. Только для map и svg.
epsilon Графы double .0001 * # nodes (mode == KK)
.0001 (mode == major)
.01 (mode == sgd)
Условие завершения. Только для neato.
esep Графы addDouble, addPoint +3 Отступ вокруг многоугольников для прокладки сплайновых ребер. Только для neato, fdp, sfdp, osage, circo, twopi.
fillcolor Узлы, ребра, кластеры color, colorList lightgrey (узлы)
black (кластеры)
Цвет заливки фона узла или кластера.
fixedsize Узлы bool, string false Использовать ли заданные атрибуты ширины и высоты для выбора размера узла (вместо подгонки размера под его содержимое).
fontcolor Ребра, узлы, графы, кластеры color black Цвет текста.
fontname Ребра, узлы, графы, кластеры string "Times-Roman" Шрифт текста.
fontnames Графы string "" Позволяет пользователю управлять представлением основных имен шрифтов в выводе SVG. Только для svg.
fontpath Графы string <system-dependent> Список каталогов, в которых libgd ищет растровые шрифты.
fontsize Ребра, узлы, графы, кластеры double 14.0 1.0 Размер шрифта текста, в пунктах.
forcelabels Графы bool true Принудительно ли размещать все xlabels, даже если они перекрываются.
gradientangle Узлы, кластеры, графы int 0 0 Если используется градиентная заливка, задает угол заливки.
group Узлы string "" Имя группы узлов для объединения ребер и предотвращения пересечений. Только для dot.
head_lp Ребра point Положение центра метки у конечного узла ребра. Только для записи.
headclip Ребра bool true Если значение истинно, конец ребра обрезается по границе конечного узла.
headhref Ребра escString "" Синоним headURL. Только для map и svg.
headlabel Ребра lblString "" Текстовая метка, размещаемая рядом с конечным узлом ребра.
headport Ребра portPos center Указывает место прикрепления конца ребра к конечному узлу.
headtarget Ребра escString <none> Окно браузера, используемое для ссылки headURL. Только для map и svg.
headtooltip Ребра escString "" Всплывающая подсказка, прикрепленная к конечному узлу ребра. Только для cmap и svg.
headURL Ребра escString "" Если задано, headURL выводится как часть метки у конечного узла ребра. Только для map и svg.
height Узлы double 0.5 0.02 Высота узла в дюймах.
href Графы, кластеры, узлы, ребра escString "" Синоним URL. Только для map, postscript и svg.
id Графы, кластеры, узлы, ребра escString "" Идентификатор объектов графа. Только для map, postscript и svg.
image Узлы string "" Имя файла с изображением, которое будет отображаться внутри узла.
imagepath Графы string "" Список каталогов для поиска файлов изображений.
imagepos Узлы string "mc" Управляет размещением изображения внутри содержащего его узла.
imagescale Узлы bool, string false Управляет заполнением узла содержащим его изображением.
inputscale Графы double <none> Масштабирует входные координаты для преобразования единиц длины. Только для neato и fdp.
K Графы, кластеры double 0.3 0 Константа пружины, используемая в виртуальной физической модели. Только для fdp и sfdp.
label Ребра, узлы, графы, кластеры lblString "\N" (узлы)
"" (в остальных случаях)
Текстовая метка, прикрепленная к объектам.
label_scheme Графы int 0 0 Следует ли считать узел с именем вида |edgelabel|* специальным узлом, представляющим метку ребра. Только для sfdp.
labelangle Ребра double -25.0 -180.0 Угол (в градусах) меток у конечного и начального узлов ребра в полярных координатах.
labeldistance Ребра double 1.0 0.0 Коэффициент масштабирования расстояния меток headlabel / taillabel от конечного / начального узла.
labelfloat Ребра bool false Если значение истинно, положение меток ребер можно задавать с меньшими ограничениями.
labelfontcolor Ребра color black Цвет меток headlabel и taillabel.
labelfontname Ребра string "Times-Roman" Шрифт для headlabel и taillabel.
labelfontsize Ребра double 14.0 1.0 Размер шрифта headlabel и taillabel.
labelhref Ребра escString "" Синоним labelURL. Только для map и svg.
labeljust Графы, кластеры string "c" Выравнивание меток графов и кластеров.
labelloc Узлы, графы, кластеры string "t" (кластеры)
"b" (корневые графы)
"c" (узлы)
Вертикальное расположение меток узлов, корневых графов и кластеров.
labeltarget Ребра escString <none> Окно браузера для открытия ссылок labelURL. Только для map и svg.
labeltooltip Ребра escString "" Всплывающая подсказка, прикрепленная к метке ребра. Только для cmap и svg.
labelURL Ребра escString "" Если задано, labelURL — ссылка, используемая для метки ребра. Только для map и svg.
landscape Графы bool false Если значение истинно, граф отображается в альбомной ориентации.
layer Ребра, узлы, кластеры layerRange "" Задает слои, в которых присутствует узел, ребро или кластер.
layerlistsep Графы string "," Символы-разделители для разбиения атрибутов типа layerRange на список диапазонов.
layers Графы layerList "" Линейно упорядоченный список имен слоев, связанных с графом.
layerselect Графы layerRange "" Выбирает список слоев для вывода.
layersep Графы string ":\t " Символы-разделители для разбиения атрибута layers на список имен слоев.
layout Графы string "" Какой механизм компоновки использовать.
len Ребра double 1.0 (neato)
0.3 (fdp)
Предпочтительная длина ребра в дюймах. Только для neato и fdp.
levels Графы int INT_MAX 0.0 Число уровней, разрешенных в многоуровневой схеме. Только для sfdp.
levelsgap Графы double 0.0 Строгость ограничений уровней neato. Только для neato.
lhead Ребра string "" Логический конечный узел ребра. Только для dot.
lheight Графы, кластеры double Высота метки графа или кластера в дюймах. Только для записи.
linelength Графы int 128 60 Какой длины должны быть строки, прежде чем они будут перенесены на следующую строку при текстовом выводе.
lp Рёбра, графы, кластеры point Положение центра метки. Только для записи.
ltail Рёбра string "" Логический хвост ребра. Только dot.
lwidth Графы, кластеры double Ширина метки графа или кластера в дюймах. Только для записи.
margin Узлы, кластеры, графы double, point <device-dependent> Для графов задаёт поля холста по осям x и y в дюймах.
maxiter Графы int 100 * # nodes (mode == KK)
200 (mode == major)
30 (mode == sgd)
600 (fdp)
Задаёт число используемых итераций. Только neato и fdp.
mclimit Графы double 1.0 Коэффициент масштабирования параметров минимизатора пересечений рёбер mincross (mc). Только dot.
mindist Графы double 1.0 0.0 Задаёт минимальное расстояние между всеми узлами. Только circo.
minlen Рёбра int 1 0 Минимальная длина ребра (разность рангов начального и конечного узлов). Только dot.
mode Графы string major Метод оптимизации компоновки. Только neato.
model Графы string shortpath Задаёт способ вычисления матрицы расстояний для входного графа. Только neato.
newrank Графы bool false Использовать ли единое глобальное ранжирование, игнорируя кластеры. Только dot.
nodesep Графы double 0.25 0.02 В dot атрибут nodesep задаёт минимальное расстояние между двумя соседними узлами одного ранга в дюймах.
nojustify Графы, кластеры, узлы, рёбра bool false Выравнивать ли многострочный текст относительно предыдущей строки (а не относительно края контейнера).
normalize Графы double, bool false Нормализует координаты итоговой компоновки. Только neato, fdp, sfdp, twopi, circo.
notranslate Графы bool false Не перемещать ли компоновку к началу координат. Только neato.
nslimit Графы double Задаёт число итераций при применении сетевого симплекс-метода. Только dot.
nslimit1 Графы double Задаёт число итераций при применении сетевого симплекс-метода. Только dot.
oneblock Графы bool false Рисовать ли графы circo вокруг одной окружности. Только circo.
ordering Графы, узлы string "" Ограничивает порядок рёбер узла слева направо. Только dot.
orientation Узлы, графы double, string 0.0
""
-360.0 Угол поворота фигуры узла или ориентация графа.
outputorder Графы outputMode breadthfirst Задаёт порядок отрисовки узлов и рёбер.
overlap Графы string, bool true Определяет, следует ли устранять перекрытия узлов и каким образом. Только fdp, neato, sfdp, circo, twopi.
overlap_scaling Графы double -4 -1e+10 Масштабирует компоновку на заданный коэффициент для уменьшения перекрытия узлов. Только prism, neato, sfdp, fdp, circo, twopi.
overlap_shrink Графы bool true Должен ли алгоритм устранения перекрытий выполнять этап сжатия для уменьшения размера компоновки. Только prism.
pack Графы bool, int false Следует ли компоновать каждую связную компоненту графа отдельно, а затем объединять их в общую упаковку.
packmode Графы packMode node Способ упаковки связных компонент.
pad Графы double, point 0.0555 (4 points) Отступ в дюймах, добавляемый вокруг минимальной области, необходимой для рисования графа.
page Графы double, point Ширина и высота выходных страниц в дюймах.
pagedir Графы pagedir BL Порядок вывода страниц.
pencolor Кластеры color black Цвет рамки, которой обводится кластер.
penwidth Кластеры, узлы, рёбра double 1.0 0.0 Задаёт ширину пера в пунктах, используемого для рисования линий и кривых.
peripheries Узлы, кластеры int <shape default> (узлы)
1 (кластеры)
0 Задаёт число контуров для многоугольных фигур и границ кластеров.
pin Узлы bool false Фиксирует узел в заданном для него входном положении. Только neato и fdp.
pos Рёбра, узлы point, splineType Положение узла или контрольные точки сплайна. Только neato и fdp.
quadtree Графы quadType, bool normal Используемая схема квадродерева. Только sfdp.
quantum Графы double 0.0 0.0 Если задано quantum > 0.0, размеры меток узлов будут округляться до целых кратных значений квантового шага.
rank Подграфы rankType Ограничения ранжирования узлов подграфа. Только dot.
rankdir Графы rankdir TB Задаёт направление компоновки графа. Только dot.
ranksep Графы double, doubleList 0.5 (dot)
1.0 (twopi)
0.02 Задаёт расстояние между рангами. Только dot и twopi.
ratio Графы double, string Задаёт соотношение сторон (высота рисунка/ширина рисунка).
rects Узлы rect Прямоугольники полей записей, в пунктах. Только для записи.
regular Узлы bool false Если true, принудительно задаёт правильную форму многоугольника.
remincross Графы bool true Если имеется несколько кластеров, следует ли повторно выполнить минимизацию пересечений рёбер. Только dot.
repulsiveforce Графы double 1.0 0.0 Степень отталкивающей силы, используемой в расширенном алгоритме Fruchterman-Reingold. Только sfdp.
resolution Графы double 96.0 0.0 Синоним атрибута dpi. Только для растрового вывода и svg.
root Графы, узлы string, bool <none> (графы)
false (узлы)
Задаёт узлы, которые будут использоваться в качестве центра компоновки. Только twopi и circo.
rotate Графы int 0 Если задано rotate=90, устанавливает альбомную ориентацию рисунка.
rotation Графы double 0 Поворачивает итоговую компоновку против часовой стрелки на заданное число градусов. Только sfdp.
samehead Рёбра string "" Рёбра с одинаковым конечным узлом и одинаковым значением samehead направляются в одну и ту же точку конечного узла. Только dot.
sametail Рёбра string "" Рёбра с одинаковым начальным узлом и одинаковым значением sametail направляются в одну и ту же точку начального узла. Только dot.
samplepoints Узлы int 8 (вывод)
20 (перекрытия и карты изображений)
Задаёт число точек, используемых для узла-круга или узла-эллипса.
scale Графы double, point Масштабирует компоновку на заданный коэффициент после её первоначального построения. Только neato и twopi.
searchsize Графы int 30 При выполнении сетевого симплекс-метода — максимальное число рёбер с отрицательными значениями разреза, проверяемых при поиске ребра с минимальным значением разреза. Только dot.
sep Графы addDouble, addPoint +4 Поле вокруг узлов при устранении их перекрытия. Только fdp, neato, sfdp, osage, circo, twopi.
shape Узлы shape ellipse Задаёт форму узла.
shapefile Узлы string "" Файл с содержимым узла, предоставленным пользователем.
showboxes Рёбра, узлы, графы int 0 0 Выводит направляющие рамки для отладки. Только dot.
sides Узлы int 4 0 Число сторон при shape=polygon.
size Графы double, point Максимальная ширина и высота рисунка в дюймах.
skew Узлы double 0.0 -100.0 Коэффициент наклона для shape=polygon.
smoothing Графы smoothType "none" Задаёт этап постобработки для сглаживания неравномерного распределения узлов. Только sfdp.
sortv Графы, кластеры, узлы int 0 0 Порядок сортировки компонентов графа при упаковке packmode.
splines Графы bool, string Управляет способом отображения рёбер и тем, будут ли они отображаться.
start Графы startType "" Параметр, используемый для определения исходной компоновки узлов. Только neato, fdp, sfdp.
style Рёбра, узлы, кластеры, графы style "" Задаёт стили для компонентов графа.
stylesheet Графы string "" URL-адрес или путь к XML-таблице стилей, используемой при выводе в SVG. Только svg.
tail_lp Рёбра point Положение метки начального узла ребра, в пунктах. Только для записи.
tailclip Рёбра bool true Если true, начальная часть ребра обрезается по границе начального узла.
tailhref Рёбра escString "" Синоним атрибута tailURL. Только для map и svg.
taillabel Рёбра lblString "" Текстовая метка, размещаемая рядом с начальным узлом ребра.
tailport Рёбра portPos center Указывает точку присоединения начальной части ребра к начальному узлу.
tailtarget Рёбра escString <none> Окно браузера для ссылки tailURL. Только для map и svg.
tailtooltip Рёбра escString "" Всплывающая подсказка, связанная с начальным узлом ребра. Только cmap и svg.
tailURL Рёбра escString "" Если задан, tailURL выводится как часть метки начального узла ребра. Только для map и svg.
target Рёбра, узлы, графы, кластеры escString, string <none> Если у объекта есть URL, этот атрибут определяет, в каком окне браузера открывается URL. Только для map и svg.
TBbalance Графы string '' В какой ранг перемещать свободные (несвязанные) узлы. Только dot.
tooltip Узлы, рёбра, кластеры, графы escString "" Всплывающая подсказка (текст при наведении курсора), связанная с узлом, ребром, кластером или графом. Только cmap и svg.
truecolor Графы bool Использует ли внутренняя растеризация цветовую модель TrueColor. Только для растрового вывода.
URL Рёбра, узлы, графы, кластеры escString <none> Гиперссылки, включаемые в вывод, зависящий от устройства. Только для map, postscript и svg.
vertices Узлы pointList Задаёт координаты вершин многоугольника узла в дюймах. Только для записи.
viewport Графы viewPort "" Область отсечения итогового рисунка.
voro_margin Графы double 0.05 0.0 Настройка отступа для метода Вороного. Только neato, fdp, sfdp, twopi, circo.
weight Рёбра int, double 1 0(dot,twopi)
1(neato,fdp)
Вес ребра.
width Узлы double 0.75 0.01 Ширина узла в дюймах.
xdotversion Графы string Определяет версию xdot, используемую в выходных данных. Только для xdot.
xlabel Рёбра, узлы lblString "" Внешняя метка узла или ребра.
xlp Узлы, рёбра point Положение внешней метки, в пунктах. Только для записи.
z Узлы double 0.0 Значение координаты Z для трёхмерных схем и отображений.

_background

Строка в формате xdot, задающая произвольный фон

тип: xdot, значение по умолчанию: <none>

При визуализации холст сначала заполняется, как описано в атрибуте bgcolor.

Затем, если задан _background, на холсте выполняются графические операции, описанные в строке.

Дополнительные сведения см. на странице формата xdot.

Красный квадрат на фоне
digraph G {
  _background="c 7 -#ff0000 p 4 4 4 36 4 36 36 4 36";
  a -> b
}
Редактировать в Playground
Допустимо для:
  • Графов

area

Задаёт предпочтительную площадь узла или пустого кластера

тип: double, значение по умолчанию: 1.0, минимум: >0

Пример: австралийские монеты, площадь пропорциональна стоимости
graph {
  layout="patchwork"
  node [style=filled]
  "5c"  [area=  5 fillcolor=silver]
  "10c" [area= 10 fillcolor=silver]
  "20c" [area= 20 fillcolor=silver]
  "50c" [area= 50 fillcolor=silver]
  "$1"  [area=100 fillcolor=gold]
  "$2"  [area=200 fillcolor=gold]
}
Редактировать в Playground
Допустимо для:
  • Узлов
  • Кластеров

Примечание: только для patchwork.

arrowhead

Стиль наконечника стрелки у целевого узла ребра

тип: arrowType, значение по умолчанию: normal

Отображается только если атрибут dir имеет значение forward или both.

См. ограничение.

См. также:

  • arrowtail
Допустимо для:
  • Рёбер

arrowsize

Множитель масштаба наконечников стрелок

тип: double, значение по умолчанию: 1.0, минимум: 0.0

Пример
digraph {
  quiver -> "0.5" [arrowsize=0.5]
  quiver -> "1"
  quiver -> "2" [arrowsize=2]
  quiver -> "3" [arrowsize=3]
}
Редактировать в Playground
Допустимо для:
  • Рёбер

arrowtail

Стиль наконечника стрелки у исходного узла ребра

тип: arrowType, значение по умолчанию: normal

Отображается только если атрибут dir имеет значение back или both.

См. ограничение.

См. также:

  • arrowhead
Допустимо для:
  • Рёбер

bb

Ограничивающий прямоугольник рисунка в пунктах

тип: rect

Допустимо для:
  • Кластеров
  • Графов

Примечание: только для записи.

beautify

Определяет, следует ли равномерно размещать висячие узлы по окружности вокруг корневого узла в sfdp.

тип: bool, значение по умолчанию: false

Определяет, следует ли пытаться равномерно разместить висячие узлы по окружности вокруг корневого узла.

До Graphviz 8.0.1 на работу влияла проблема 2283: отображался на один сектор меньше необходимого, из-за чего первый и последний узлы перекрывались.

Примеры:

Улучшенное размещение
digraph G {
    layout="sfdp"
    beautify=true

    N0 -> {N1; N2; N3; N4; N5; N6}
}
Редактировать в Playground
Без улучшенного размещения
digraph G {
    layout="sfdp"
    beautify=false

    N0 -> {N1; N2; N3; N4; N5; N6}
}
Редактировать в Playground
Допустимо для:
  • Графов

Примечание: только для sfdp.

bgcolor

Цвет фона холста

тип: color | colorList, значение по умолчанию: <none>

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

Если атрибут задан для кластера, цвет используется как начальный фон кластера. Если для кластера задан залитый style, атрибут fillcolor кластера накладывается поверх цвета фона.

Если значение представляет собой colorList, используется градиентная заливка. По умолчанию заливка линейная; значение style=radial включает радиальную заливку. Используются только два цвета. Если второй цвет (после двоеточия) не указан, вместо него используется цвет по умолчанию. См. также атрибут gradientangle, задающий угол градиента.

В некоторых форматах вывода, например PostScript, заливка корневого графа не выполняется, если явно не задан bgcolor.

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

Пример
graph {
  bgcolor="lightblue"
  label="Home"
  subgraph cluster_ground_floor {
    bgcolor="lightgreen"
    label="Ground Floor"
    Lounge
    Kitchen
  }
  subgraph cluster_top_floor {
    bgcolor="lightyellow"
    label="Top Floor"
    Bedroom
    Bathroom
  }
}
Редактировать в Playground
Допустимо для:
  • Графов
  • Кластеров

center

Определяет, следует ли центрировать рисунок на выходном холсте

тип: bool, значение по умолчанию: false

Может иметь значение true или false.

Допустимо для:
  • Графов

charset

Кодировка символов, используемая при интерпретации строкового ввода в качестве текстовой метки.

тип: string, значение по умолчанию: "UTF-8"

Значение по умолчанию — "UTF-8". Другие допустимые значения:

  • "utf-8" / "utf8" (значение по умолчанию)
  • "iso-8859-1" / "ISO_8859-1" / "ISO8859-1" / "ISO-IR-100" / "Latin1" / "l1" / "latin-1"
  • "big-5" / "big5": китайская кодировка Big-5

Атрибут charset не чувствителен к регистру.

Обратите внимание: если кодировка символов во входных данных не совпадает со значением charset, результат может выглядеть очень странно.

Нельзя использовать метки в формате HTML вместе с кодировкой Big-5.

Пример
digraph G {
  charset="UTF-8"
  "🍔" -> "💩"
}
Редактировать в Playground
Допустимо для:
  • Графов

class

Имена классов, добавляемые к SVG-элементу узла, ребра, графа или кластера

тип: string, значение по умолчанию: ""

Используйте вместе с stylesheet, чтобы задавать стили SVG-вывода с помощью имён классов CSS.

Поддерживаются несколько классов, разделённых пробелами.

См. также:

  • stylesheet
  • id

Пример:

digraph G {
  graph [class="cats"];

  subgraph cluster_big {
    graph [class="big_cats"];

    "Lion" [class="yellow social"];
    "Snow Leopard" [class="white solitary"];
  }
}
Редактировать в Playground
Допустимо для:
  • Рёбер
  • Узлов
  • Кластеров
  • Графов

Примечание: только для svg.

cluster

Определяет, является ли подграф кластером

тип: bool, значение по умолчанию: false

Подграфы-кластеры отображаются иначе: например, dot рисует рамку вокруг подграфов-кластеров, но не рисует её вокруг подграфов, не являющихся кластерами.

Пример:

digraph cats {
  subgraph cluster_big_cats {
    // This subgraph is a cluster, because the name begins with "cluster"
    
    "Lion";
    "Snow Leopard";
  }

  subgraph domestic_cats {
    // This subgraph is also a cluster, because cluster=true.
    cluster=true;

    "Siamese";
    "Persian";
  }

  subgraph not_a_cluster {
    // This subgraph is not a cluster, because it doesn't start with "cluster",
    // nor sets cluster=true.
    
    "Wildcat";
  }
}
Редактировать в Playground
Допустимо для:
  • Кластеров
  • Подграфов

clusterrank

Режим обработки кластеров

тип: clusterMode, значение по умолчанию: local

Если задано clusterrank=local, подграф, имя которого начинается с cluster, обрабатывается особым образом.

Подграф размещается отдельно, а затем интегрируется в родительский граф как единое целое; вокруг него рисуется ограничивающий прямоугольник. Если для кластера задан параметр label, эта метка отображается внутри прямоугольника.

Обратите также внимание, что кластеры могут содержать другие кластеры.

Режимы clusterrank=global и clusterrank=none, по-видимому, идентичны: оба отключают специальную обработку кластеров.

Допустимо для:
  • Графов

Примечание: только для dot.

color

Основной цвет графических элементов, кроме текста

тип: color | colorList, значение по умолчанию: black

Для текста используйте атрибут fontcolor.

Для рёбер значением может быть один цвет или colorList.

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

Если есть наконечник целевой стрелки, он рисуется первым цветом в списке, а наконечник исходной стрелки — вторым. Это позволяет в распространённом случае отображать направленные в противоположные стороны рёбра с помощью параллельных сплайнов вместо отдельных маршрутизируемых кратных рёбер.

Если указана хотя бы одна доля, цвета наносятся последовательно, и каждому цвету соответствует примерно заданная для него доля ребра.

Например, граф:

Пример цвета рёбер
digraph G {
  a -> b [dir=both color="red:blue"]
  c -> d [dir=none color="green:red;0.25:blue"]
}
Редактировать в Playground

даёт результат:

Пример цвета подграфов и узлов
digraph G {
  subgraph cluster_yellow {
    color="yellow"
    a [color="red"]
    b [color="green"]
  }
}
Редактировать в Playground

даёт результат:

См. также:

  • colorscheme
Допустимо для:
  • Рёбер
  • Узлов
  • Кластеров

colorscheme

Пространство имён цветовой схемы: контекст для интерпретации имён цветов

тип: string, значение по умолчанию: ""

В частности, если значение color имеет форму "xxx" или "//xxx", цвет xxx интерпретируется в соответствии с текущей цветовой схемой. Если цветовая схема не задана, используются стандартные имена X11.

Например, если задано colorscheme=oranges9 (из цветовых схем Brewer), то color=7 интерпретируется как color="/oranges9/7" — седьмой цвет цветовой схемы oranges9.

Оранжевая цветовая схема
graph {
  node [colorscheme=oranges9] # Apply colorscheme to all nodes
  1 [color=1]
  2 [color=2]
  3 [color=3]
  4 [color=4]
  5 [color=5]
  6 [color=6]
  7 [color=7]
  8 [color=8]
  9 [color=9]
}
Редактировать в Playground
Зелёная цветовая схема
graph {
  node [colorscheme=greens9] # Apply colorscheme to all nodes
  1 [color=1]
  2 [color=2]
  3 [color=3]
  4 [color=4]
  5 [color=5]
  6 [color=6]
  7 [color=7]
  8 [color=8]
  9 [color=9]
}
Редактировать в Playground

См. также:

  • color
Допустимо для:
  • Рёбер
  • Узлов
  • Кластеров
  • Графов

comment

Комментарии добавляются в выходные данные

тип: string, значение по умолчанию: ""

Зависит от устройства вывода.

Пример
digraph {
  comment="I am a graph"
  A [comment="I am node A"]
  B [comment="I am node B"]
  A->B [comment="I am an edge"]
}
Редактировать в Playground

Вывод SVG с комментариями:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
 "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- Generated by graphviz version 2.47.1 (20210417.1919)
 -->
<!-- This is a graph -->
<!-- Pages: 1 -->
<svg width="62pt" height="116pt"
 viewBox="0.00 0.00 62.00 116.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 112)">
<polygon fill="white" stroke="transparent" points="-4,4 -4,-112 58,-112 58,4 -4,4"/>
<!-- A -->
<!-- I am node A -->
<g id="node1" class="node">
<title>A</title>
<ellipse fill="none" stroke="black" cx="27" cy="-90" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-86.3" font-family="Times,serif" font-size="14.00">A</text>
</g>
<!-- B -->
<!-- I am node B -->
<g id="node2" class="node">
<title>B</title>
<ellipse fill="none" stroke="black" cx="27" cy="-18" rx="27" ry="18"/>
<text text-anchor="middle" x="27" y="-14.3" font-family="Times,serif" font-size="14.00">B</text>
</g>
<!-- A&#45;&gt;B -->
<!-- I am an edge -->
<g id="edge1" class="edge">
<title>A&#45;&gt;B</title>
<path fill="none" stroke="black" d="M27,-71.7C27,-63.98 27,-54.71 27,-46.11"/>
<polygon fill="black" stroke="black" points="30.5,-46.1 27,-36.1 23.5,-46.1 30.5,-46.1"/>
</g>
</g>
</svg>
Допустимо для:
  • Рёбер
  • Узлов
  • Графов

compound

Если значение true, разрешает рёбра между кластерами

тип: bool, значение по умолчанию: false

См. lhead и ltail.

digraph {
  compound=true;

  subgraph cluster_a {
    label="Cluster A";
    node1; node3; node5; node7;
  }
  subgraph cluster_b {
    label="Cluster B";
    node2; node4; node6; node8;
  }

  node1 -> node2 [label="1"];
  node3 -> node4 [label="2" ltail="cluster_a"];
  
  node5 -> node6 [label="3" lhead="cluster_b"];
  node7 -> node8 [label="4" ltail="cluster_a" lhead="cluster_b"];
}
Редактировать в Playground
Допустимо для:
  • Графов

Примечание: только для dot.

concentrate

Если значение true, используются концентраторы рёбер

тип: bool, значение по умолчанию: false

Этот параметр объединяет кратные рёбра в одно и заставляет частично параллельные рёбра проходить часть пути вместе. Последняя возможность пока недоступна вне dot.
Работает только для несмежных узлов.

Пример
digraph {
    concentrate=true
    a -> b [label="1"]
    c -> b
    d -> b
}
Редактировать в Playground
Допустимо для:
  • Графов

constraint

Если значение false, ребро не используется при ранжировании узлов

тип: bool, значение по умолчанию: true

Например, в графе:

digraph G {
  a -> c;
  a -> b;
  b -> c [constraint=false];
}
Редактировать в Playground

ребро b -> c не добавляет ограничение при распределении рангов, поэтому единственные ограничения требуют, чтобы a находился выше b и c; в результате получается граф:

Допустимо для:
  • Рёбер

Примечание: только для dot.

Damping

Коэффициент демпфирования движения под действием силы.

тип: double, значение по умолчанию: 0.99, минимум: 0.0

На каждой итерации перемещение узла ограничивается этой долей его потенциального перемещения. Если значение меньше 1.0, система постепенно «остывает», что предотвращает циклические колебания.

Допустимо для:
  • Графов

Примечание: только для neato.

decorate

Определяет, соединять ли метку ребра с ребром линией

тип: bool, значение по умолчанию: false

Если значение true, метка ребра соединяется с ребром двухсегментной ломаной: линия проходит под меткой, подчёркивая её, а затем идёт к ближайшей точке сплайна.

Пример
digraph {
  a -> a [label="AA" decorate=true]
  a -> b [label="AB" decorate=true]
  b -> b [label="BB" decorate=false]
}
Редактировать в Playground
Допустимо для:
  • Рёбер

defaultdist

Расстояние между узлами в отдельных компонентах связности

тип: double, значение по умолчанию: 1+(avg. len)*sqrt(|V|), минимум: epsilon

Если задать слишком малое значение, компоненты связности могут перекрываться.

Применимо только если задано pack=false.

Допустимо для:
  • Графов

Примечание: только для neato.

dim

Задаёт число измерений, используемых для построения схемы

тип: int, значение по умолчанию: 2, минимум: 2

Максимально допустимое значение — 10.

Допустимо для:
  • Графов

Примечание: только для neato, fdp, sfdp.

dimen

Задаёт число измерений, используемых при визуализации

тип: int, значение по умолчанию: 2, минимум: 2

Максимально допустимое значение — 10.

Если заданы оба атрибута — dimen и dim, — второй определяет размерность, используемую для построения схемы, а первый — для визуализации. Если задан только dimen, он используется и для построения схемы, и для визуализации.

Обратите внимание, что в настоящее время все аспекты визуализации являются двумерными. Это касается формы и размера узлов, устранения перекрытий и прокладки рёбер. Поэтому для dimen > 2 единственная допустимая информация — атрибут pos узлов.

Все остальные координаты будут двумерными и в лучшем случае будут отражать проекцию точки из пространства большей размерности на плоскость.

Допустимо для:
  • Графов

Примечание: только для neato, fdp, sfdp.

dir

Тип ребра, определяющий отрисовку наконечников стрелок

тип: dirType, значение по умолчанию: forward (ориентированный граф), none (неориентированный граф)

Указывает, на каких концах ребра следует нарисовать наконечник стрелки.

Фактический стиль наконечника стрелки можно задать с помощью атрибутов arrowhead и arrowtail.

См. ограничение.

Пример
digraph {
  A->B [dir=forward]
  C->D [dir=back]
  E->F [dir=both]
  G->H [dir=none]
}
Редактировать в Playground
Допустимо для:
  • Рёбер

diredgeconstraints

Определяет, следует ли ограничивать направление большинства рёбер вниз

тип: string | bool, значение по умолчанию: false

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

Допустимо только при mode="ipsep".

Если задано hier, создаются ограничения уровней, аналогичные используемым вместе с mode="hier". Основное отличие состоит в том, что во втором случае используются только эти ограничения, поэтому можно применить более быстрый решатель.

Допустимо для:
  • Графов

Примечание: только для neato.

distortion

Коэффициент искажения для shape=polygon

тип: double, значение по умолчанию: 0.0, минимум: -100.0

Положительные значения увеличивают верхнюю часть по сравнению с нижней; отрицательные дают обратный эффект.

См. также skew.

Пример
graph {
  LargeBottom [shape=polygon sides=4 distortion=-.5]
  LargeTop    [shape=polygon sides=4 distortion=.5]
}
Редактировать в Playground
Применимо к:
  • Узлам

dpi

Задает ожидаемое количество пикселей на дюйм на устройстве отображения

тип: double, по умолчанию: 96.0, минимум: 0.0

Для вывода bitmap атрибут dpi гарантирует более точную отрисовку текста как по размеру, так и по расположению.

Для вывода SVG dpi гарантирует, что размеры в выходных данных соответствуют правильному количеству пунктов или дюймов.

Применимо к:
  • Графам

Примечание: только для растрового вывода и svg.

edgehref

Синоним атрибута edgeURL

тип: escString, по умолчанию: ""

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Применимо к:
  • Ребрам

Примечание: только для map и svg.

edgetarget

Окно браузера, используемое для ссылки edgeURL

тип: escString, по умолчанию: <none>

Если у ребра задан атрибут URL или edgeURL, edgetarget определяет, в каком окне браузера будет открываться URL, связанный с частью ребра без метки.

Если задано значение edgetarget=_graphviz, ссылка откроется в новом окне, если такого окна еще нет, или будет открыта в уже существующем окне.

Если значение не задано, используется значение атрибута target.

Применимо к:
  • Ребрам

Примечание: только для map и svg.

edgetooltip

Всплывающая подсказка, прикрепленная к части ребра без метки

тип: escString, по умолчанию: ""

  • headtooltip.
  • labeltooltip.
  • tailtooltip.
  • tooltip.
Применимо к:
  • Ребрам

Примечание: только для cmap и svg.

edgeURL

Ссылка для частей ребра без меток

тип: escString, по умолчанию: ""

edgeURL переопределяет любой атрибут URL, заданный для ребра.

Кроме того, edgeURL используется возле начального или конечного узла, если его не переопределяют соответственно атрибуты headURL или tailURL.

См. ограничение.

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Применимо к:
  • Ребрам

Примечание: только для map и svg.

epsilon

Условие завершения

тип: double, по умолчанию: .0001 * # nodes (mode == KK) , .0001 (mode == major) , .01 (mode == sgd)

Если квадраты длин всех градиентов энергии меньше epsilon, алгоритм останавливается.

Применимо к:
  • Графам

Примечание: только для neato.

esep

Отступ вокруг многоугольников для прокладки сплайновых ребер

тип: addDouble | addPoint, по умолчанию: +3

Интерпретация такая же, как и для атрибута sep. Обычно esep должно быть строго меньше, чем sep.

Применимо к:
  • Графам

Примечание: только для neato, fdp, sfdp, osage, circo и twopi.

fillcolor

Цвет заливки фона узла или кластера

тип: color | colorList, по умолчанию: lightgrey (узлы) , black (кластеры)

Используется при style=filled или для закрашенной arrowhead.

Если fillcolor не задан, используется color. (Для кластеров, если color не задан, используется bgcolor.) Если и этот атрибут не задан, используется значение по умолчанию, кроме случаев shape=point или выходного формата MIF, для которых по умолчанию используется черный цвет.

Если значение представляет собой colorList, используется градиентная заливка. По умолчанию заливка линейная; установка style=radial приводит к использованию радиальной заливки. В настоящее время используются только два цвета. Если второй цвет (после двоеточия) не указан, вместо него используется цвет по умолчанию.

Для задания угла градиента см. также атрибут gradientangle.

Обратите внимание: кластер наследует атрибуты корневого графа, если они заданы. Поэтому, если для корневого графа задан fillcolor, он переопределит атрибут color или bgcolor, установленный для кластера.

Применимо к:
  • Узлам
  • Ребрам
  • Кластерам

fixedsize

Использовать ли указанные атрибуты ширины и высоты для задания размера узла (вместо подбора размера по содержимому узла)

тип: bool | string, по умолчанию: false

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

При этом ширина и высота должны быть не меньше значений, заданных атрибутами width и height, которые определяют минимальные значения этих параметров.

Если задано значение true, размер узла определяется только значениями атрибутов width и height и не увеличивается для размещения текстовой метки. Если метка (с учетом отступа) не помещается в заданные пределы, выводится предупреждение.

Если атрибут fixedsize имеет значение shape, атрибуты width и height также определяют размер формы узла, но метка может быть значительно больше. При предотвращении перекрытия узлов учитываются размеры и метки, и формы, однако все ребра, ведущие к узлу, игнорируют метку и соприкасаются только с формой узла. Если метка слишком велика, предупреждение не выводится.

Применимо к:
  • Узлам

fontcolor

Цвет текста

тип: color, по умолчанию: black

Применимо к:
  • Ребрам
  • Узлам
  • Графам
  • Кластерам

fontname

Шрифт текста

тип: string, по умолчанию: "Times-Roman"

Выбор во многом зависит от выходного формата и, для неточечных форматов вывода, таких как PostScript или SVG, от наличия шрифта на устройстве, где граф отображается или печатается. Поэтому лучше использовать гарнитуры, доступные практически повсеместно, например Times-Roman, Helvetica или Courier.

Способ разрешения имен шрифтов также зависит от используемой библиотеки. Если Graphviz собран с библиотекой fontconfig, для поиска шрифтов будет использоваться эта библиотека. См. команды fc-list, fc-match и другие команды fontconfig, описывающие разрешение имен и доступные шрифты. В других системах могут использоваться собственные пакеты шрифтов, например Quartz в OS X.

Обратите внимание, что различные атрибуты шрифта, например насыщенность и наклон, можно включить в имя шрифта. К сожалению, синтаксис зависит от используемой системы шрифтов. Так, fontname="times bold italic" задаст полужирный курсивный шрифт Times при использовании Pango — основной библиотеки шрифтов, используемой обычно. В качестве альтернативы, fontname="times:italic" задаст курсивный шрифт Times из fontconfig, а fontname="times-bold" будет разрешен как полужирный Times в Quartz. Необходимо выяснить, какой пакет используется в вашей системе Graphviz, и обратиться к соответствующей документации.

Если Graphviz собран без высокоуровневой библиотеки шрифтов, значение fontname будет считаться именем файла шрифта Type 1 или True Type. Если задано значение fontname=schlbk, программа будет искать файл с именем schlbk.ttf, schlbk.pfa или schlbk.pfb в одном из каталогов, указанных атрибутом fontpath. При поиске поддерживаются различные псевдонимы распространенных шрифтов.

digraph {
    label="Comic Sans MS"
    fontname="Comic Sans MS"
    subgraph cluster_a {
      label="Courier New"
      fontname="Courier New"
      Arial [fontname="Arial"];
      Arial -> Arial [label="Impact" fontname="Impact"]
    }
}
Редактировать в Playground
Применимо к:
  • Ребрам
  • Узлам
  • Графам
  • Кластерам

fontnames

Позволяет пользователю управлять представлением базовых имен шрифтов в выводе SVG

тип: string, по умолчанию: ""

Если fontnames не задан или имеет значение hd, используются соглашения об именовании шрифтов fontconfig. Шрифт Times-Roman по умолчанию будет сопоставлен с эквивалентным системным шрифтом, например Times New Roman (Windows) или Times (некоторые версии Linux).

Если для fontnames задано значение svg, в выводе будут использоваться известные имена шрифтов SVG. Если для fontnames задано значение ps, имена шрифтов PostScript, например Times-Roman, используются напрямую.

Во всех случаях в качестве резервного шрифта вместо именованного используется базовый шрифт SVG serif. (Например, если диаграмма содержит текст шрифтом Times-Roman, в выводе SVG этот текст может быть представлен тегом <text> с атрибутом font-family="Times-Roman,serif".)

Применимо к:
  • Графам

Примечание: только для svg.

fontpath

Список каталогов, в которых libgd ищет растровые шрифты

тип: string, по умолчанию: <system-dependent>

Используется, если Graphviz собран без библиотеки fontconfig.

Если fontpath не задан, проверяется переменная окружения DOTFONTPATH.

Если DOTFONTPATH не задан, проверяется GDFONTPATH.

Если GDFONTPATH не задан, libgd использует встроенный путь к шрифтам.

Обратите внимание, что fontpath — это атрибут корневого графа.

Применимо к:
  • Графам

fontsize

Размер шрифта в пунктах, используемый для текста

тип: double, по умолчанию: 14.0, минимум: 1.0

digraph {
    label="40pt Graph Label"
    fontsize="40"
    subgraph cluster_a {
      label="30pt Cluster Label"
      fontsize="30pt"
      "20pt Node" [fontsize="20pt"];
      "20pt Node"-> "20pt Node" [label="10pt Edge" fontsize="10"]
    }
}
Редактировать в Playground
Применимо к:
  • Ребрам
  • Узлам
  • Графам
  • Кластерам

forcelabels

Принудительно размещать все xlabels, даже если они перекрываются

тип: bool, по умолчанию: true

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

Применимо к:
  • Графам

gradientangle

Если используется градиентная заливка, задает угол заливки

тип: int, по умолчанию: 0, минимум: 0

При линейной заливке цвета переходят друг в друга вдоль линии, заданной углом и центром объекта. При радиальной заливке значение 0 задает переход цветов от центра по радиусу; при ненулевом значении переход цветов начинается из точки около периферии объекта, положение которой определяется этим значением.

Если значение не задано, угол по умолчанию равен 0.

Применимо к:
  • Узлам
  • Кластерам
  • Графам

group

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

тип: string, по умолчанию: ""

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

Применимо к:
  • Узлам

Примечание: только для dot.

head_lp

Центральная позиция метки у начального конца ребра

тип: point

В пунктах.

Применимо к:
  • Ребрам

Примечание: только для записи.

headclip

Если значение истинно, начальный конец ребра обрезается по границе начального узла

тип: bool, по умолчанию: true

В противном случае конец ребра доходит до центра узла или, если применимо, до центра порта.

Применимо к:
  • Ребрам

headhref

Синоним атрибута headURL

тип: escString, по умолчанию: ""

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Применимо к:
  • Ребрам

Примечание: только для map и svg.

headlabel

Текстовая метка, размещаемая возле начального конца ребра

тип: lblString, по умолчанию: ""

См. ограничение.

Применимо к:
  • Ребрам

headport

Указывает, к какой точке начального узла прикрепить начальный конец ребра

тип: portPos, по умолчанию: center

По умолчанию ребро направлено к центру узла и обрезается по границе узла.

См. ограничение.

Применимо к:
  • Ребрам

headtarget

Окно браузера, используемое для ссылки headURL

тип: escString, по умолчанию: <none>

Если у ребра задан атрибут headURL, headtarget определяет, в каком окне браузера будет открыт URL. Если задать значение headURL=_graphviz, ссылка откроется в новом окне, если такого окна еще нет, или будет открыта в уже существующем окне.

Если значение не задано, используется значение атрибута target.

Применимо к:
  • Ребрам

Примечание: только для map и svg.

headtooltip

Всплывающая подсказка, прикрепленная к начальному концу ребра

тип: escString, по умолчанию: ""

Используется только в том случае, если для ребра задан атрибут headURL.

См. также:

  • edgetooltip.
  • labeltooltip.
  • tailtooltip.
  • tooltip.
Применимо к:
  • Ребрам

Примечание: только для cmap и svg.

headURL

Если задано, headURL выводится как часть метки начального конца ребра

тип: escString, по умолчанию: ""

Кроме того, это значение используется возле начального узла, переопределяя любое значение атрибута URL.

См. ограничение.

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Применимо к:
  • Ребрам

Примечание: только для map и svg.

height

Высота узла в дюймах

тип: double, по умолчанию: 0.5, минимум: 0.02

Это начальная минимальная высота узла. Если значение атрибута fixedsize равно true, оно задает окончательную высоту узла. В противном случае, если для размещения метки требуется больше места, высота узла будет увеличена.

Если выходной формат — dot, значение, заданное для height, будет окончательным.

Если форма узла правильная, ширина и высота становятся одинаковыми:

  • Если значения width и height заданы явно, используется большее из двух значений.
  • Если явно задано значение width или height, оно используется как для width, так и для height.
  • Если ни одно значение не задано явно, используется меньшее из двух значений по умолчанию.

Если задано значение меньше минимального (0.02), оно будет округлено до этого минимума.

Пример высоты
digraph G {
  "default"
  "1in" [height=1]
  "2in" [height=2]
}
Редактировать в Playground

См. также:

  • width
Применимо к:
  • Узлам

href

Синоним атрибута URL

тип: escString, по умолчанию: ""

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Применимо к:
  • Графам
  • Кластерам
  • Узлам
  • Ребрам

Примечание: только для map, postscript и svg.

id

Идентификатор объектов графа

тип: escString, по умолчанию: ""

Позволяет автору графа задать идентификатор объектов графа, который будет включен в выходные данные.

Применяются обычные подстановки \N, \E, \G.

Если значение задано, поставщик должен обеспечить уникальность значений id для предполагаемого дальнейшего использования.

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

Если атрибут id не задан, используется уникальный внутренний идентификатор. Однако автору графа это значение заранее неизвестно.

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

Применимо к:
  • Графам
  • Кластерам
  • Узлам
  • Ребрам

Примечание: только для map, postscript и svg.

image

Задает имя файла с изображением, которое будет отображаться внутри узла

тип: string, по умолчанию: ""

Файл изображения должен иметь один из распознаваемых форматов, обычно JPEG, PNG, GIF, BMP, SVG или PostScript, и поддерживать преобразование в требуемый выходной формат.

Файл должен содержать сведения о размере изображения:

  • Растровые форматы обычно уже содержат сведения о размере изображения.
  • Файлы PostScript должны содержать строку, начинающуюся с %%BoundingBox:, за которой следуют четыре целых числа, задающих координаты x и y левого нижнего и правого верхнего углов ограничивающей рамки изображения. Координаты указываются в пунктах.
  • Файл изображения SVG должен содержать атрибуты ширины и высоты, обычно в элементе svg. Их значения должны иметь вид числа с плавающей точкой, за которым могут следовать единицы измерения, например width="76pt". Поддерживаются единицы in, px, pc, pt, cm и mm, обозначающие соответственно дюймы, пиксели, пики, пункты, сантиметры и миллиметры. По умолчанию используются пункты.

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

Поддерживаются только пути к локальным ресурсам. Чтобы использовать URL удаленного ресурса, см. скрипт dot_url_resolve.py.

Применимо к:
  • Узлам

imagepath

Список каталогов для поиска файлов изображений

тип: string, по умолчанию: ""

Задается атрибутом image или с помощью элемента IMG в метках в стиле HTML.

imagepath должно представлять собой список абсолютных или относительных путей, разделённых точкой с запятой ; (в Windows) или двоеточием : (во всех остальных ОС).

Для загрузки изображения будет использован первый каталог, в котором найден файл с указанным именем.

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

Действует для:
  • Графов

imagepos

Управляет расположением изображения внутри содержащего его узла

тип: string, значение по умолчанию: "mc"

imagepos действует, только если изображение меньше содержащего его узла.

По умолчанию изображение центрируется по горизонтали и вертикали.

Допустимые значения:

  • tl — сверху слева
  • tc — сверху по центру
  • tr — сверху справа
  • ml — посередине слева
  • mc — посередине по центру (значение по умолчанию)
  • mr — посередине справа
  • bl — снизу слева
  • bc — снизу по центру
  • br — снизу справа
Действует для:
  • Узлов

imagescale

Управляет заполнением содержащего узла изображением

тип: bool | string, значение по умолчанию: false

Как правило, изображению задаётся его естественный размер (см. dpi), а размер узла увеличивается настолько, чтобы вместить изображение, метку, отступы и контуры.

Его ширина и высота также будут не меньше минимальных значений width и height. Однако если задано fixedsize=true, атрибуты ширины и высоты определяют точный размер узла.

  • При отрисовке в случае по умолчанию (imagescale=false) изображение сохраняет естественный размер.
  • Если задано imagescale=true, изображение равномерно масштабируется (то есть сохраняет соотношение сторон), чтобы поместиться в узел. Хотя бы один размер изображения будет максимально возможным для размера узла.
  • Если задано imagescale=width, ширина изображения масштабируется так, чтобы заполнить ширину узла.
  • Соответствующее правило действует, если задано imagescale=height.
  • Если задано imagescale=both, высота и ширина масштабируются независимо, чтобы заполнить узел.

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

Как и в случае увеличения, если задано imagescale=true, ширина и высота масштабируются равномерно.

Действует для:
  • Узлов

inputscale

Масштабирует входные координаты для преобразования единиц длины

тип: double, значение по умолчанию: <none>

Для алгоритмов компоновки, поддерживающих начальные входные координаты (задаваемые атрибутом pos), этот атрибут можно использовать для соответствующего масштабирования значений.

По умолчанию fdp и neato интерпретируют значения x и y атрибута pos в дюймах. (ПРИМЕЧАНИЕ: neato -n(2) рассматривает координаты как точки — единицу измерения, используемую алгоритмами компоновки для атрибута pos.) Поэтому, если атрибуты pos графа заданы в точках, следует установить inputscale=72. Это также можно задать в командной строке с помощью флага -s.

Если атрибут не задан, масштабирование не выполняется, а единицами измерения входных данных считаются дюймы.

inputscale=0 эквивалентно inputscale=72.

Действует для:
  • Графов

Примечание: только neato и fdp.

K

Константа упругости, используемая в виртуальной физической модели

тип: double, значение по умолчанию: 0.3, минимум: 0

Она примерно соответствует идеальной длине ребра (в дюймах): увеличение K обычно приводит к увеличению расстояния между узлами.

Обратите внимание, что атрибут ребра len позволяет переопределить это значение для смежных узлов.

Действует для:
  • Графов
  • Кластеров

Примечание: только fdp и sfdp.

label

Текстовая метка, прикреплённая к объектам

тип: lblString, значение по умолчанию: "\N" (узлы), "" (в остальных случаях)

Если shape узла имеет значение record, метка может иметь специальный формат, описывающий структуру записи.

Обратите внимание, что метка узла по умолчанию — "\N", поэтому именем или идентификатором узла становится его метка.

Технически имя узла может быть HTML-строкой, однако это не означает, что метка узла будет интерпретироваться как HTML-подобная метка. Это происходит потому, что фактическая метка узла является обычной строкой, которая заменяется необработанными байтами, хранящимися в имени узла.

Чтобы получить HTML-подобную метку, само значение атрибута label должно быть HTML-строкой.

Пример: картины Ван Гога
graph {
  label="Vincent van Gogh Paintings"

  subgraph cluster_self_portraits {
    label="Self-portraits"

    spwgfh [label="Self-Portrait with Grey Felt Hat"]
    spaap [label="Self-Portrait as a Painter"]
  }
  
  subgraph cluster_flowers {
    label="Flowers"

    sf [label="Sunflowers"]
    ab [label="Almond Blossom"]
  }
}
Редактировать в Playground
Действует для:
  • Рёбер
  • Узлов
  • Графов
  • Кластеров

label_scheme

Следует ли считать узел, имя которого имеет вид |edgelabel|*, специальным узлом, представляющим метку ребра.

тип: int, значение по умолчанию: 0, минимум: 0

  • Значение по умолчанию, label_scheme=0, не оказывает никакого эффекта.
  • Если задано label_scheme=1, sfdp использует метод на основе штрафов, чтобы расположить такой узел ближе к центру его соседа.
  • При значении label_scheme=2 sfdp использует метод на основе штрафов, чтобы расположить такой узел ближе к прежнему центру его соседа.
  • Наконец, значение label_scheme=3 запускает двухэтапный процесс устранения перекрытий и выравнивания.
Действует для:
  • Графов

Примечание: только sfdp.

labelangle

Угол (в градусах) в полярных координатах для меток у начала и конца ребра.

тип: double, значение по умолчанию: -25.0, минимум: -180.0

Вместе с атрибутом labeldistance определяет расположение headlabel / taillabel относительно начала / конца ребра в полярных координатах.

Начало координатной системы — точка соприкосновения ребра с узлом. Луч под углом 0 градусов направлен от начала координат назад вдоль ребра, параллельно ребру в этой точке.

Угол в градусах задаёт поворот относительно луча 0 градусов: положительные углы направлены против часовой стрелки, а отрицательные — по часовой стрелке.

Действует для:
  • Рёбер

labeldistance

Масштабирующий коэффициент расстояния от узлов начала / конца ребра до headlabel / taillabel.

тип: double, значение по умолчанию: 1.0, минимум: 0.0

Расстояние по умолчанию составляет 10 пунктов.

labeldistance умножает значение по умолчанию.

Дополнительные сведения см. в разделе labelangle.

Действует для:
  • Рёбер

labelfloat

Если задано значение true, метки рёбер получают больше свободы в выборе положения

тип: bool, значение по умолчанию: false

В частности, метка может располагаться поверх других рёбер.

Действует для:
  • Рёбер

labelfontcolor

Цвет для headlabel и taillabel.

тип: color, значение по умолчанию: black

Если не задан, используется значение атрибута ребра fontcolor.

Действует для:
  • Рёбер

labelfontname

Шрифт для headlabel и taillabel

тип: string, значение по умолчанию: "Times-Roman"

Шрифт для headlabel и taillabel.

Если не задан, используется значение атрибута ребра fontname.

Действует для:
  • Рёбер

labelfontsize

Размер шрифта для headlabel и taillabel

тип: double, значение по умолчанию: 14.0, минимум: 1.0

Размер шрифта в пунктах для headlabel и taillabel.

Если не задан, используется значение атрибута ребра fontsize.

Действует для:
  • Рёбер

labelhref

Синоним атрибута labelURL

тип: escString, значение по умолчанию: ""

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Действует для:
  • Рёбер

Примечание: только map и svg.

labeljust

Выравнивание меток графов и кластеров

тип: string, значение по умолчанию: "c"

  • Если задано labeljust=r, метка выравнивается по правому краю ограничивающего прямоугольника
  • Если задано labeljust=l, метка выравнивается по левому краю
  • В противном случае метка выравнивается по центру.

Обратите внимание, что подграф наследует атрибуты родительского графа. Поэтому, если корневой граф задаёт labeljust=l, подграф наследует это значение.

Выравнивание метки графа
digraph {
  label="l"
  labeljust=l
  a
}
Редактировать в Playground
Выравнивание метки графа
digraph {
  label="r"
  labeljust=r
  b
}
Редактировать в Playground
Выравнивание меток кластеров
digraph {
  subgraph cluster_l {
    label="l"
    labeljust=l
    a
  }
  subgraph cluster_c {
    label="c"
    labeljust=c
    b
  }
  subgraph cluster_r {
    label="r"
    labeljust=r
    c
  }
}
Редактировать в Playground
Действует для:
  • Графов
  • Кластеров

labelloc

Вертикальное расположение меток узлов, корневых графов и кластеров

тип: string, значение по умолчанию: "t" (кластеры), "b" (корневые графы), "c" (узлы)

Для графов и кластеров допустимы только labelloc=t и labelloc=b, соответствующие расположению сверху и снизу.

По умолчанию метки корневых графов располагаются снизу, а метки кластеров — сверху.

Обратите внимание, что подграф наследует атрибуты родительского графа. Поэтому, если корневой граф задаёт labelloc=b, подграф наследует это значение.

Для узлов этот атрибут используется, только если высота узла больше высоты его метки.

Если задано labelloc=t, labelloc=c или labelloc=b, метка выравнивается соответственно по верхнему краю, по центру или по нижнему краю узла.

По умолчанию метка выравнивается по вертикальному центру.

Метка в верхней части графа
digraph {
  labelloc="t"
  label="Title"
  a -> b
}
Редактировать в Playground
Метка в нижней части графа
digraph {
  labelloc="b"
  label="Title"
  a -> b
}
Редактировать в Playground
Расположение меток кластеров
digraph {
  label="Graph Title"
  subgraph cluster_t {
    labelloc="t"
    label="Cluster Top"
    a -> b
  }
  subgraph cluster_b {
    labelloc="b"
    label="Cluster Bottom"
    c -> d
  }
}
Редактировать в Playground
Расположение меток узлов
digraph {
  t [labelloc=t]
  c [labelloc=c]
  b [labelloc=b]
}
Редактировать в Playground
Действует для:
  • Узлов
  • Графов
  • Кластеров

labeltarget

Окно браузера, в котором открываются ссылки labelURL

тип: escString, значение по умолчанию: <none>

Если у ребра задан атрибут URL или labelURL, этот атрибут определяет, в каком окне браузера будет открываться URL, связанный с меткой.

Значение labeltarget=_graphviz откроет новое окно, если оно ещё не существует, или повторно использует его, если оно уже открыто.

Если значение не задано, используется значение атрибута target.

Действует для:
  • Рёбер

Примечание: только map и svg.

labeltooltip

Всплывающая подсказка, прикреплённая к метке ребра

тип: escString, значение по умолчанию: ""

  • edgetooltip.
  • headtooltip.
  • tailtooltip.
  • tooltip.
Действует для:
  • Рёбер

Примечание: только cmap и svg.

labelURL

Если задано, labelURL — это ссылка для метки ребра

тип: escString, значение по умолчанию: ""

labelURL переопределяет любой атрибут URL, заданный для ребра.

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Действует для:
  • Рёбер

Примечание: только map и svg.

landscape

Если задано значение true, граф отображается в альбомной ориентации

тип: bool, значение по умолчанию: false

Синоним rotate=90 или orientation=landscape.

Повороты
digraph {
  landscape=true
  a -> b
}
Редактировать в Playground

См. также:

  • rotate
  • orientation
Действует для:
  • Графов

layer

Задаёт слои, в которых присутствуют узел, ребро или кластер

тип: layerRange, значение по умолчанию: ""

Действует для:
  • Рёбер
  • Узлов
  • Кластеров

layerlistsep

Символы-разделители, используемые для преобразования атрибутов типа layerRange в список диапазонов.

тип: string, значение по умолчанию: ","

Действует для:
  • Графов

layers

Упорядоченный список имён слоёв, связанных с графом

тип: layerList, значение по умолчанию: ""

Затем граф выводится отдельными слоями. На текущем выходном слое отображаются только принадлежащие ему компоненты.

См. Как использовать слои рисования (наложения).

Действует для:
  • Графов

layerselect

Выбирает список выводимых слоёв

тип: layerRange, значение по умолчанию: ""

Действует для:
  • Графов

layersep

Символы-разделители для преобразования атрибута layers в список имён слоёв.

тип: string, значение по умолчанию: ":\t "

Действует для:
  • Графов

layout

Выбор механизма компоновки

тип: string, значение по умолчанию: ""

Задаёт имя используемого механизма компоновки, например dot или neato.

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

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

Этот атрибут имеет приоритет над флагом -K и фактическим именем использованной команды.

Действует для:
  • Графов

len

Предпочтительная длина ребра в дюймах

тип: double, значение по умолчанию: 1.0 (neato), 0.3 (fdp)

См. также:

  • minlen
Действует для:
  • Рёбер

Примечание: только neato и fdp.

levels

Количество уровней, допускаемых в многоуровневой схеме

тип: int, значение по умолчанию: INT_MAX, минимум: 0.0

Действует для:
  • Графов

Примечание: только sfdp.

levelsgap

строгость ограничений уровней neato

тип: double, значение по умолчанию: 0.0

Задаёт строгость ограничений уровней в neato при значении mode="ipsep" или mode=hier.

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

Действует для:
  • Графов

Примечание: только neato.

lhead

Логическое начало ребра

тип: string, значение по умолчанию: ""

Если атрибут compound имеет значение true, а lhead задано и содержит имя кластера, в котором находится фактическое начало, ребро обрезается по границе кластера.

digraph {
  compound=true;

  subgraph cluster_a {
    label="Cluster A";
    node1; node3; node5; node7;
  }
  subgraph cluster_b {
    label="Cluster B";
    node2; node4; node6; node8;
  }

  node1 -> node2 [label="1"];
  node3 -> node4 [label="2" ltail="cluster_a"];
  
  node5 -> node6 [label="3" lhead="cluster_b"];
  node7 -> node8 [label="4" ltail="cluster_a" lhead="cluster_b"];
}
Редактировать в Playground

См. ограничение.

Действует для:
  • Рёбер

Примечание: только dot.

lheight

Высота метки графа или кластера в дюймах

тип: double

Действует для:
  • Графов
  • Кластеров

Примечание: доступен только для записи.

linelength

Максимальная длина строки перед переносом на следующую строку при текстовом выводе.

тип: int, значение по умолчанию: 128, минимум: 60

Пример: строка длиной 80 символов ("a " * 40) разбивается на две строки при выводе в каноническом формате:

$ echo 'digraph G { linelength=60; N0 [label="a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a "]; }' | dot -Tcanon
digraph G {
        graph [linelength=60];
        node [label="\N"];
        N0      [label="a a a a a a a a a a a a a a a a a a a a a a a a a a a a a a \
a a a a a a a a a a "];
}

Перенос текста происходит, когда длина метки достигает заданного значения.

Несмотря на название linelength, здесь имеется в виду длина строки атрибута, а не всей строки (включающей идентификатор узла и ключ атрибута).

Действует для:
  • Графов

lp

Положение центра метки

тип: point

Положение центра метки в пунктах.

Действует для:
  • Рёбер
  • Графов
  • Кластеров

Примечание: доступен только для записи.

ltail

Логический конец ребра

тип: string, значение по умолчанию: ""

Если compound=true, а ltail задано и содержит имя кластера, в котором находится фактический конец, ребро обрезается по границе кластера.

digraph {
  compound=true;

  subgraph cluster_a {
    label="Cluster A";
    node1; node3; node5; node7;
  }
  subgraph cluster_b {
    label="Cluster B";
    node2; node4; node6; node8;
  }

  node1 -> node2 [label="1"];
  node3 -> node4 [label="2" ltail="cluster_a"];
  
  node5 -> node6 [label="3" lhead="cluster_b"];
  node7 -> node8 [label="4" ltail="cluster_a" lhead="cluster_b"];
}
Редактировать в Playground

См. ограничение.

Действует для:
  • Рёбер

Примечание: только dot.

lwidth

Ширина метки графа или кластера в дюймах

тип: double

Действует для:
  • Графов
  • Кластеров

Примечание: доступен только для записи.

margin

Для графов задаёт поля холста по осям x и y в дюймах

тип: double | point, по умолчанию: <device-dependent>

Если задано одно значение типа double, оба поля отступа устанавливаются равными этому значению.

Обратите внимание, что отступ не является частью рисунка, а представляет собой пустое пространство вокруг него. По сути, отступ соответствует смещению рисунка, необходимому, например, для его центрирования на странице. В области отступа ничего не рисуется. Чтобы фактически расширить фон рисунка, см. атрибут pad.

Для кластеров margin задаёт пространство между узлами кластера и ограничивающей рамкой кластера. По умолчанию оно равно 8 пунктам.

Для узлов этот атрибут задаёт пространство вокруг метки узла. По умолчанию значение равно 0.11,0.055.

Примеры узлов: широкие, высокие и одинаковые отступы
graph {
  "1.5x0.5" [shape=rect margin="1.5,0.5"] # in inches
  "0.5x1.5" [shape=rect margin="0.5,1.5"] # in inches
  "1.5x1.5" [shape=rect margin="1.5"]     # in inches
}
Редактировать в Playground
Пример: отступы кластера и графа
graph {
    bgcolor=lightgray
    margin=0 # in inches
    
    subgraph cluster_one {
      margin=8 # in points
      a
      b
    }
    subgraph cluster_two {
      margin=16 # in points
      c
      d
    }
}
Редактировать в Playground
Допустим для:
  • Узлов
  • Кластеров
  • Графов

maxiter

Задаёт число используемых итераций

тип: int, по умолчанию: 100 * # nodes (mode == KK) , 200 (mode == major) , 30 (mode == sgd) , 600 (fdp)

Допустим для:
  • Графов

Примечание: только для neato и fdp.

mclimit

Масштабный коэффициент для параметров минимизатора пересечений рёбер mincross (mc)

тип: double, по умолчанию: 1.0

Мультипликативный масштабный коэффициент, используемый для изменения параметров MinQuit (по умолчанию = 8) и MaxIter (по умолчанию = 24), применяемых при минимизации пересечений.

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

Допустим для:
  • Графов

Примечание: только для dot.

mindist

Задаёт минимальное расстояние между всеми узлами

тип: double, по умолчанию: 1.0, минимум: 0.0

Допустим для:
  • Графов

Примечание: только для circo.

minlen

Минимальная длина ребра (разность рангов между начальным и конечным узлами)

тип: int, по умолчанию: 1, минимум: 0

См. также:

  • len
Допустим для:
  • Рёбер

Примечание: только для dot.

mode

Метод оптимизации компоновки

тип: string, по умолчанию: major

neato поддерживает следующие режимы:

  • mode="major": neato использует мажоризацию напряжений1.
  • mode="KK": neato использует метод градиентного спуска Камада—Каваи2. KK иногда заметно быстрее для небольших графов (число узлов < 100). Существенный недостаток заключается в том, что KK может зациклиться.
  • mode="sgd": neato использует вариант метода стохастического градиентного спуска3. Преимущество sgd — более быстрая и надёжная сходимость по сравнению с обоими предыдущими методами, а недостаток sgd — фиксированное число итераций, поэтому для некоторых графов может потребоваться увеличить значение maxiter.

В neato есть два экспериментальных режима:

  • mode="hier", добавляющий направление сверху вниз, подобное используемому в компоновке dot, и
  • mode="ipsep", позволяющий графу задавать минимальные вертикальные и горизонтальные расстояния между узлами. (См. атрибут sep.)

  1. Gansner, E.R., Koren, Y., North, S. (2005). Построение графов методом мажоризации напряжений. В: Pach, J. (ред.) Построение графов. GD 2004. Конспекты лекций по информатике, том 3383. Springer, Берлин, Гейдельберг. ↩︎

  2. Tomihisa Kamada, Satoru Kawai, Алгоритм построения общих неориентированных графов, Information Processing Letters, том 31, выпуск 1, 1989, страницы 7–15. ↩︎

  3. J. X. Zheng, S. Pawar и D. F. M. Goodman, «Построение графов методом стохастического градиентного спуска», IEEE Transactions on Visualization and Computer Graphics, том 25, № 9, стр. 2738–2748, 1 сентября 2019 г., doi: 10.1109/TVCG.2018.2859997. ↩︎

Допустим для:
  • Графов

Примечание: только для neato.

model

Задаёт способ вычисления матрицы расстояний для входного графа

тип: string, по умолчанию: shortpath

Матрица расстояний задаёт идеальное расстояние между каждой парой узлов. neato пытается найти компоновку, которая наилучшим образом соответствует этим расстояниям. По умолчанию используется длина кратчайшего пути, причём длина каждого ребра задаётся его атрибутом len.

  • Если model="circuit", neato использует модель электрического сопротивления для вычисления расстояний. Это способствует выделению кластеров.
  • Если model="subset", neato использует модель подмножеств. Длина ребра задаётся числом узлов, смежных ровно с одной из его конечных вершин, после чего вычисляются кратчайшие пути. Это помогает разделять узлы с высокой степенью.

Для более точного управления расстояниями можно использовать model=mds. В этом случае атрибут len ребра используется как идеальное расстояние между его вершинами.

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

Допустим для:
  • Графов

Примечание: только для neato.

newrank

Использовать ли единое глобальное ранжирование без учёта кластеров

тип: bool, по умолчанию: false

Исходный алгоритм ранжирования в dot рекурсивно обрабатывает кластеры. Это может привести к уменьшению числа рангов и более компактной компоновке, однако иногда начальный узел оказывается на более высоком ранге, чем конечный. Кроме того, предполагается, что узел не ограничен в нескольких отдельных несовместимых подграфах. Например, узел не может одновременно находиться в кластере и быть ограничен атрибутом rank=same вместе с узлом, не входящим в этот кластер.

Этот параметр позволяет задавать для узлов несколько ограничений. Ограничения рангов обычно имеют приоритет над ограничениями рёбер.

Допустим для:
  • Графов

Примечание: только для dot.

nodesep

В dot параметр nodesep задаёт минимальное расстояние в дюймах между двумя соседними узлами одного ранга

тип: double, по умолчанию: 0.25, минимум: 0.02

В других компоновщиках nodesep влияет на расстояние между петлями одного узла или между несколькими рёбрами одной пары узлов.

Малое расстояние между узлами
digraph {
    nodesep=0.1;
    node1; node2; node3;
}
Редактировать в Playground
Большое расстояние между узлами
digraph {
    nodesep=0.5;
    node1; node2; node3;
}
Редактировать в Playground
Допустим для:
  • Графов

nojustify

Выравнивать ли многострочный текст относительно предыдущей строки текста, а не относительно стороны контейнера.

тип: bool, по умолчанию: false

По умолчанию многострочные метки выравниваются в наиболее подходящем контексте. Поэтому в метке многоугольного узла строка с выравниванием по левому краю будет выровнена по левой стороне узла (с учётом заданного атрибутом margin отступа). В узлах-записях строка с выравниванием по левому краю будет выровнена по левой стороне содержащего её столбца полей. Если задано nojustify=true, многострочные метки выравниваются относительно самих себя.

Например, если задано nojustify, первая строка метки длинная, а вторая короче и выровнена по левому краю, вторая строка будет выровнена по крайнему левому символу первой независимо от размера узла.

См. пример с управляющей последовательностью \l (выравнивание по левому краю):

Nojustify выравнивает текст относительно предыдущей строки, а не левой стороны рамки
digraph G {
  node [width=3 shape=box]
  a [nojustify=false label="The first line is longer\nnojustify=false\l"]
  b [nojustify=true label="The first line is longer\nnojustify=true\l"]
  a -> b
}
Редактировать в Playground
Nojustify выравнивает текст относительно предыдущей строки, а не столбца записи
digraph G{
  c [nojustify=false shape=record label="{Records Example - Long Line\n | Title - Shorter Line\nnojustify=false\l}"]
  d [nojustify=true shape=record label="{Records Example - Long Line\n | Title - Shorter Line\nnojustify=true\l}"]
  c -> d
}
Редактировать в Playground
Допустим для:
  • Графов
  • Кластеров
  • Узлов
  • Рёбер

normalize

Нормализует координаты итоговой компоновки

тип: double | bool, по умолчанию: false

Первую точку помещает в начало координат, а затем поворачивает компоновку так, чтобы угол первого ребра соответствовал значению normalize в градусах.

Если normalize не является числом, оно интерпретируется как логическое значение; true соответствует 0 градусам.

ПРИМЕЧАНИЕ: Поскольку атрибут сначала интерпретируется как число, для false и true нельзя использовать 0 и 1.

Допустим для:
  • Графов

Примечание: только для neato, fdp, sfdp, twopi и circo.

notranslate

Определяет, следует ли избегать переноса компоновки в начало координат

тип: bool, по умолчанию: false

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

Это может быть неудобно, если некоторые узлы закреплены или если пользователь запускает neato -n.

Чтобы избежать такого переноса, задайте notranslate=true.

Допустим для:
  • Графов

Примечание: только для neato.

nslimit

Задаёт число итераций при использовании сетевого симплекс-метода

тип: double

nslimit используется при вычислении node x coordinates.

Если значение задано, # iterations = nslimit * # nodes; в противном случае # iterations = INT_MAX.

Допустим для:
  • Графов

Примечание: только для dot.

nslimit1

Задаёт число итераций при использовании сетевого симплекс-метода

тип: double

nslimit1 используется для ранжирования узлов.

Если значение задано, # iterations = nslimit * # nodes; в противном случае # iterations = INT_MAX.

Допустим для:
  • Графов

Примечание: только для dot.

oneblock

Определяет, следует ли размещать графы circo на одной окружности.

тип: bool, по умолчанию: false

Рассмотрим два примера визуализации одного и того же графа:

Пример: несколько блоков
digraph G {
    layout="circo"
    oneblock=false

    N0 -> N1
    N1 -> N2
    N2 -> N3
    N3 -> N4
    N4 -> N0
    
    N4 -> N5
    N5 -> N6
    N6 -> N7
    N7 -> N8
    N8 -> N5
}
Редактировать в Playground
Пример: один блок
digraph G {
    layout="circo"
    oneblock=true

    N0 -> N1
    N1 -> N2
    N2 -> N3
    N3 -> N4
    N4 -> N0
    
    N4 -> N5
    N5 -> N6
    N6 -> N7
    N7 -> N8
    N8 -> N5
}
Редактировать в Playground
Допустим для:
  • Графов

Примечание: только для circo.

ordering

Ограничивает порядок расположения рёбер узла слева направо.

тип: string, по умолчанию: ""

Если задано ordering="out", исходящие рёбра узла, то есть рёбра, для которых узел является начальным, должны располагаться слева направо в том же порядке, в котором они заданы во входных данных.

Если задано ordering="in", входящие рёбра узла должны располагаться слева направо в том же порядке, в котором они заданы во входных данных.

Если значение задано для графа или подграфа, оно применяется ко всем узлам этого графа или подграфа.

Обратите внимание, что атрибут графа имеет приоритет над атрибутом узла.

Допустим для:
  • Графов
  • Узлов

Примечание: только для dot.

orientation

Угол поворота фигуры узла или ориентация графа

тип: double | string, по умолчанию: 0.0, "", минимум: -360.0

Для узлов: угол поворота многоугольной фигуры узла в градусах. При любом числе сторон многоугольника поворот на 0 градусов обеспечивает плоское основание. Для графов: если задано "[lL]*", устанавливает альбомную ориентацию графа.

Используется только в том случае, если не задан атрибут rotate.

Ориентация узлов
digraph {
  layout=neato       # Render in a circular layout
  node [shape=house] # Make all nodes have 'house' shape

    0 [orientation=0]
   45 [orientation=45]
   90 [orientation=90]
  135 [orientation=135]
  180 [orientation=180]
  225 [orientation=225]
  270 [orientation=270]
  315 [orientation=315]
  0 -> 45 -> 90 -> 135 -> 180 -> 225 -> 270 -> 315 -> 0
}
Редактировать в Playground
Альбомная ориентация графа
digraph {
  orientation=L
  a -> b
}
Редактировать в Playground

См. также:

  • orientation
  • rotate
Допустим для:
  • Узлов
  • Графов

outputorder

Задаёт порядок отрисовки узлов и рёбер

тип: outputMode, по умолчанию: breadthfirst

Допустим для:
  • Графов

overlap

Определяет, следует ли и каким образом устранять перекрытия узлов

тип: string | bool, по умолчанию: true

Сначала узлы увеличиваются с использованием атрибута sep. Если задано true, перекрытия сохраняются. Если значение равно "scale", перекрытия устраняются равномерным масштабированием по осям x и y. Если значение преобразуется в "false" и этот алгоритм доступен, для устранения перекрытий используется Prism — алгоритм на основе графа близости. Его также можно явно включить с помощью overlap=prism. Этот метод сначала немного увеличивает масштаб; величина задаётся атрибутом overlap_scaling. Это может устранить значительную часть перекрытий. Для параметра prism также допускается необязательный неотрицательный целочисленный суффикс. С его помощью можно задать число попыток устранения перекрытий. По умолчанию overlap="prism" эквивалентно overlap="prism1000". Если задано overlap="prism0", выполняется только этап масштабирования.

Если Prism недоступен или версия Graphviz ниже 2.28, "overlap=false" использует метод на основе диаграммы Вороного. Его всегда можно включить явно с помощью "overlap=voronoi".

Если задано overlap="scalexy", масштабы по осям x и y изменяются отдельно для устранения перекрытий.

Если задано overlap="compress", компоновка масштабируется настолько, насколько возможно, без появления перекрытий, предполагая, разумеется, что изначально перекрытий нет.

Примечание. Остальные допустимые значения overlap соответствуют алгоритмам, которые в настоящее время могут приводить к неоптимальным соотношениям сторон. Кроме того, использование "ortho*" и "portho*" считается устаревшим.

Если значение равно "vpsc", перекрытия устраняются методом квадратичной оптимизации, минимизирующим смещение узлов.

Если значение равно "orthoxy" или "orthoyx", перекрытия устраняются путём оптимизации двух задач с ограничениями: одной для оси x и другой для оси y. Суффикс указывает, какая ось обрабатывается первой. Для значения «ortho» используется метод, похожий на «orthoxy», но применяется эвристика для уменьшения смещения между двумя проходами. Если значение равно "ortho_yx", используется тот же метод, что и для "ortho", но оси x и y меняются ролями. Значения "portho", "porthoxy", "porthoxy" и "portho_yx" похожи на предыдущие четыре, но обеспечивают только псевдоортогональный порядок.

Если компоновка выполняется neato с параметром mode="ipsep", можно использовать overlap=ipsep. В этом случае ограничения на устранение перекрытий включаются непосредственно в алгоритм компоновки. Примечание. В настоящее время поддерживается только один уровень кластеризации.

За исключением fdp и sfdp, компоновщики по умолчанию предполагают overlap="true". Сначала fdp выполняет несколько проходов со встроенным методом силовой компоновки, пытаясь устранить перекрытия. Поэтому fdp принимает overlap с целочисленным префиксом и двоеточием, задающими число попыток. Если префикс не указан, предварительные попытки не выполняются. Если после двоеточия ничего нет, ни один из описанных выше методов не применяется. По умолчанию fdp использует overlap="9:prism". Обратите внимание, что overlap="true", overlap="0:true" и overlap="0:" отключают устранение всех перекрытий.

По умолчанию sfdp использует overlap="prism0".

За исключением методов Вороного и prism, все эти преобразования сохраняют ортогональный порядок исходной компоновки. То есть если координаты x двух узлов изначально совпадали, они останутся равными; если координата x одного узла изначально была меньше координаты другого, это соотношение сохранится и в преобразованной компоновке. Аналогичные свойства выполняются для координат y. Для случаев "porth*" это не совсем верно: в них ортогональный порядок сохраняется только для узлов, связанных ребром.

Допустим для:
  • Графов

Примечание: только для fdp, neato, sfdp, circo и twopi.

overlap_scaling

Масштабирует компоновку для уменьшения перекрытия узлов.

тип: double, по умолчанию: -4, минимум: -1e+10

Если задано overlap=prism, компоновка масштабируется с этим коэффициентом. Это позволяет устранить значительную часть перекрытий узлов, ускорить их устранение и лучше сохранить форму графа.

  • Если overlap_scaling отрицательно, компоновка масштабируется в -1*overlap_scaling раз относительно среднего размера метки.

  • Если overlap_scaling положительно, компоновка масштабируется в overlap_scaling раз.

  • Если overlap_scaling равно нулю, масштабирование не выполняется.

Допустим для:
  • Графов

Примечание: только для prism, neato, sfdp, fdp, circo и twopi.

overlap_shrink

Определяет, должен ли алгоритм устранения перекрытий выполнять этап сжатия для уменьшения размера компоновки

тип: bool, по умолчанию: true

Допустим для:
  • Графов

Примечание: только для prism.

pack

Определяет, следует ли компоновку каждой связной компоненты графа выполнять отдельно, а затем упаковывать компоненты вместе.

тип: bool | int, по умолчанию: false

Если pack имеет целочисленное значение, оно задаёт размер отступа вокруг каждой части в пунктах; иначе используется отступ по умолчанию 8.

Если pack интерпретируется как false, весь граф компонуется целиком. На степень детализации и способ упаковки влияет атрибут packmode.

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

pack считается истинным, если значение pack равно true (без учёта регистра) или является неотрицательным целым числом.

Допустим для:
  • Графов

packmode

Способ упаковки связных компонент

тип: packMode, по умолчанию: node

(см. packMode). Обратите внимание: задание packmode автоматически включает упаковку, как если бы было задано pack=true.

Допустим для:
  • Графов

pad

Размер в дюймах, на который область рисования расширяется за пределы минимальной области, необходимой для отображения графа

тип: double | point, по умолчанию: 0.0555 (4 пункта)

Если pad — одно значение типа double, значения отступа по осям x и y устанавливаются равными этому значению. Эта область является частью рисунка и, если применимо, заполняется цветом фона.

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

Допустим для:
  • Графов

page

Ширина и высота выходных страниц в дюймах

тип: double | point

Если задано только одно значение, оно используется и для ширины, и для высоты.

Если задано page и его размер меньше размера компоновки, поверх неё накладывается прямоугольная сетка страниц заданного размера; начала координат страниц совмещаются с нижним левым углом, разделяя компоновку на страницы. Затем страницы формируются по одной в порядке pagedir.

В настоящее время page работает только для вывода PostScript. Для других типов вывода используйте другой инструмент, чтобы разделить вывод на несколько файлов, или используйте viewport для создания нескольких файлов.

Применимо к:
  • Графам

pagedir

Порядок вывода страниц

тип: pagedir, по умолчанию: BL

Используется только при установленном и применимом атрибуте page.

Ограничен одним из 8 порядков обхода строк или столбцов.

Применимо к:
  • Графам

pencolor

Цвет рамки, обводящей кластер

тип: color, по умолчанию: black

Если pencolor не задан, используется color.

Если color не задан, используется bgcolor.

Если bgcolor не задан, используется значение по умолчанию.

Обратите внимание, что кластер наследует заданные атрибуты корневого графа. Поэтому, если для корневого графа задан pencolor, он переопределит атрибут color или bgcolor, заданный для кластера.

Применимо к:
  • Кластерам

penwidth

Задает ширину пера в пунктах, используемого для рисования линий и кривых

тип: double, по умолчанию: 1.0, минимум: 0.0

включая границы рёбер и кластеров.

Значение penwidth наследуется подкластерами и не влияет на текст.

До 31 января 2008 года эффект penwidth=W достигался включением setlinewidth(W) в спецификацию style.

Если заданы оба атрибута, будет использоваться penwidth.

Применимо к:
  • Кластерам
  • Узлам
  • Рёбрам

peripheries

Задает число контуров многоугольных фигур и границ кластеров

тип: int, по умолчанию: <shape default> (узлы) , 1 (кластеры) , минимум: 0

Обратите внимание, что пользовательские фигуры рассматриваются как разновидность прямоугольной фигуры, поэтому значение числа контуров по умолчанию равно 1, а пользовательская фигура рисуется в ограничивающем прямоугольнике. Задание peripheries=0 отключает это поведение.

peripheries=1 — максимальное значение для кластеров.

Применимо к:
  • Узлам
  • Кластерам

pin

Фиксирует узел в заданной для него входной позиции

тип: bool, по умолчанию: false

Если значение истинно и для узла на входе задан атрибут pos, neato или fdp не позволяет узлу переместиться из входной позиции. Это свойство также можно задать непосредственно в атрибуте pos (см. тип point).

Примечание: Из-за особенностей реализации до 27 февраля 2014 года конечные координаты переносились в начало координат. Поэтому, если посмотреть выходные координаты в формате (x)dot или plain, координаты закреплённых узлов не будут совпадать с координатами, заданными на входе. Если это важно, простое решение — сохранить координаты закреплённого узла. Разность векторов старых и новых координат даст величину переноса, которую затем можно вычесть из всех соответствующих координат.

Начиная с 27 февраля 2014 года этого переноса можно избежать в neato, задав notranslate=true. Однако, если в графе указано удаление перекрытий узлов или изменение пропорций с помощью ratio, координаты узлов всё ещё могут измениться.

Применимо к:
  • Узлам

Примечание: только neato, fdp.

pos

Позиция узла или контрольные точки сплайна

тип: point | splineType

Для узлов позиция указывает на центр узла. При выводе координаты указываются в пунктах.

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

При использовании флага командной строки -n с neato предполагается, что позиции заданы одной из программ компоновки и, следовательно, выражены в пунктах. Поэтому neato -n может корректно принимать входные данные без флага -s и фактически игнорирует такой флаг.

Применимо к:
  • Рёбрам
  • Узлам

Примечание: только neato, fdp.

quadtree

Используемая схема квадродерева

тип: quadType | bool, по умолчанию: normal

  • quadtree=true псевдонимы quadtree=normal
  • quadtree=false псевдонимы quadtree=none
  • quadtree=2 псевдонимы quadtree=fast
Применимо к:
  • Графам

Примечание: только sfdp.

quantum

Если quantum > 0.0, размеры меток узлов будут округляться до целых кратных значения quantum

тип: double, по умолчанию: 0.0, минимум: 0.0

Применимо к:
  • Графам

rank

Ограничения на ранг узлов в подграфе

тип: rankType

  • Если rank="same", все узлы размещаются на одном ранге.
  • Если rank="min", все узлы размещаются на минимальном ранге.
  • Если rank="source", все узлы размещаются на минимальном ранге, и на минимальном ранге находятся только узлы, принадлежащие подграфу с rank="source" или rank="min".

Аналогичные условия применяются к rank="max" и rank="sink".

(Примечание: минимальный ранг находится выше или левее, а максимальный — ниже или правее.)

Дополнительные сведения см. в этом ответе на Stack Overflow

Применимо к:
  • Подграфам

Примечание: только dot.

rankdir

Задает направление компоновки графа

тип: rankdir, по умолчанию: TB

Например, если rankdir="LR" и нет циклов, ребро T -> H; будет направлено слева направо. По умолчанию графы компонуются сверху вниз.

Этот атрибут также влияет на интерпретацию узлов-записей. См. фигуры-записи.

Сверху вниз (по умолчанию)
digraph {
    rankdir="TB"
    a -> b -> c;
}
Редактировать в Playground
Снизу вверх
digraph {
    rankdir="BT"
    a -> b -> c;
}
Редактировать в Playground
Слева направо
digraph {
    rankdir="LR"
    a -> b -> c;
}
Редактировать в Playground
Справа налево
digraph {
    rankdir="RL"
    a -> b -> c;
}
Редактировать в Playground
Применимо к:
  • Графам

Примечание: только dot.

ranksep

Задает расстояние между рангами

тип: double | doubleList, по умолчанию: 0.5 (dot) , 1.0 (twopi) , минимум: 0.02

В dot задаёт желаемое расстояние между рангами в дюймах.

Это минимальное вертикальное расстояние между нижними границами узлов одного ранга и верхними границами узлов следующего ранга. Если значение содержит equally, центры всех рангов располагаются на одинаковом расстоянии друг от друга. Обратите внимание, что возможны оба варианта настройки, например ranksep="1.2 equally".

В twopi этот атрибут задаёт радиальное расстояние между концентрическими окружностями. Для twopi ranksep также может быть списком значений double. Первое значение double задаёт радиус внутренней окружности, второе — увеличение радиуса от первой окружности до второй и т. д. Если окружностей больше, чем чисел, последнее число используется как шаг для остальных.

Применимо к:
  • Графам

Примечание: только dot, twopi.

ratio

Задает соотношение сторон (высота рисунка/ширина рисунка)

тип: double | string

Обратите внимание, что эта настройка применяется до проверки ограничений атрибута size.

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

Если ratio является числовым, ratio считается желаемым соотношением сторон. Если фактическое соотношение меньше желаемого, высота рисунка увеличивается до достижения желаемого соотношения; если фактическое соотношение больше желаемого, увеличивается ширина рисунка.

Если ratio="fill" и задан атрибут size, позиции узлов масштабируются отдельно по осям x и y так, чтобы итоговый рисунок точно заполнял указанный размер. Если оба значения size превышают ширину и высоту рисунка, обе координаты каждого узла соответственно увеличиваются. Однако если один из размеров меньше соответствующего размера рисунка, один из размеров увеличивается так, чтобы итоговый рисунок имел соотношение сторон, заданное атрибутом size. Затем при отрисовке компоновка равномерно масштабируется по обоим измерениям, чтобы поместиться в указанный size, из-за чего узлы и текст также могут уменьшиться. Это может быть нежелательно, но позволяет избежать сложной задачи перемещения узлов приемлемым образом для уменьшения рисунка.

Если ratio="compress" и задан атрибут size, dot пытается сжать исходную компоновку, чтобы она поместилась в заданный размер. Это позволяет плотнее разместить узлы, но уменьшает сбалансированность и симметричность. Эта функция работает только в dot.

Если ratio="expand", задан атрибут size, а ширина и высота графа меньше значения в size, позиции узлов равномерно масштабируются до тех пор, пока хотя бы один размер точно не совпадёт с size. Обратите внимание, что это отличается от использования size в качестве желаемого размера: в данном случае рисунок увеличивается до создания рёбер, а размеры узлов и текста остаются неизменными.

Если ratio="auto", задан атрибут page, а граф не помещается на одну страницу, то для size задаётся «идеальное» значение.

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

Применимо к:
  • Графам

rects

Прямоугольники полей записей, в пунктах

тип: rect

Применимо к:
  • Узлам

Примечание: только для записи.

regular

Если значение истинно, принудительно задаёт правильную форму многоугольника.

тип: bool, по умолчанию: false

Если значение истинно, вершины многоугольника будут лежать на окружности с центром в центре узла.

digraph {
    "pentagon1" [shape="pentagon"];
    "pentagon2" [shape="pentagon" regular=true]
    "hexagon1" [shape="hexagon"];
    "hexagon2" [shape="hexagon" regular=true];
}
Редактировать в Playground
Применимо к:
  • Узлам

remincross

Если имеется несколько кластеров, определяет, следует ли повторно минимизировать пересечения рёбер.

тип: bool, по умолчанию: true

Применимо к:
  • Графам

Примечание: только dot.

repulsiveforce

Степень отталкивающей силы в расширенной модели Фрухтермана—Рейнгольда

тип: double, по умолчанию: 1.0, минимум: 0.0

с направленными силами. Значения больше 1 обычно уменьшают эффект деформации за счёт меньшей кластеризации.

Применимо к:
  • Графам

Примечание: только sfdp.

resolution

Синоним атрибута dpi.

тип: double, по умолчанию: 96.0, минимум: 0.0

Применимо к:
  • Графам

Примечание: только для растрового вывода и svg.

root

Задает узлы, используемые в качестве центра компоновки

тип: string | bool, по умолчанию: <none> (графы) , false (узлы)

Центром компоновки будет корень построенного остовного дерева.

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

В twopi root фактически будет центральным узлом. В circo блок, содержащий этот узел, будет центральным при отрисовке его связной компоненты. Если атрибут не задан, twopi выберет наиболее центральный узел, а circo — случайный узел.

Если атрибут root задан как пустая строка, twopi заменит его именем узла, выбранного в качестве корневого.

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

Применимо к:
  • Графам
  • Узлам

Примечание: только twopi, circo.

rotate

Если rotate=90, задаёт альбомную ориентацию рисунка

тип: int, по умолчанию: 0

Повороты
digraph {
  rotate=90
  a -> b
}
Редактировать в Playground

См. также:

  • landscape
  • orientation
Применимо к:
  • Графам

rotation

Поворачивает итоговую компоновку против часовой стрелки на заданное число градусов

тип: double, по умолчанию: 0

Применимо к:
  • Графам

Примечание: только sfdp.

samehead

Рёбра с одинаковой головной вершиной и одинаковым значением samehead направляются в одну и ту же точку головной вершины

тип: string, по умолчанию: ""

Не влияет на петли.

До Graphviz 8.0.1 для каждого узла допускалось не более 5 уникальных значений samehead.

См. ограничение.

См. также sametail.

Применимо к:
  • Рёбрам

Примечание: только dot.

sametail

Рёбра с одинаковой хвостовой вершиной и одинаковым значением sametail направляются в одну и ту же точку хвостовой вершины.

тип: string, по умолчанию: ""

Не влияет на петли.

До Graphviz 8.0.1 для каждого узла допускалось не более 5 уникальных значений sametail.

См. ограничение.

См. также samehead.

Применимо к:
  • Рёбрам

Примечание: только dot.

samplepoints

Задает число точек, используемых для узла-круга или узла-эллипса

тип: int, по умолчанию: 8 (вывод) , 20 (удаление перекрытий и карты изображений)

Используется, если во входном графе задан атрибут vertices, а формат вывода — dot или xdot.

В neato этот атрибут выполняет ту же роль при корректировке компоновки для предотвращения перекрытия узлов, а также при создании карт изображений.

Применимо к:
  • Узлам

scale

Масштабирует компоновку на заданный коэффициент после первоначальной компоновки

тип: double | point

Если задано только одно число, оно масштабирует и ширину, и высоту.

Применимо к:
  • Графам

Примечание: только neato, twopi.

searchsize

При выполнении сетевого симплекс-метода — максимальное число рёбер с отрицательными значениями разреза, проверяемых при поиске ребра с минимальным значением разреза.

тип: int, по умолчанию: 30

Применимо к:
  • Графам

Примечание: только dot.

sep

Отступ вокруг узлов при удалении перекрытий между ними

тип: addDouble | addPoint, по умолчанию: +4

Это гарантирует минимальное ненулевое расстояние между узлами.

Если значение атрибута начинается со знака плюса '+', задаётся дополнительный отступ. То есть "+w,h" увеличивает ограничивающую рамку узла на w пунктов слева и справа и на h пунктов сверху и снизу.

Без знака плюса узел масштабируется по координате x на 1 + w, а по координате y — на 1 + h.

Если задано только одно число, оно используется для обоих измерений.

Если атрибут не задан, но определён esep, значения sep будут установлены равными значениям esep, делённым на 0.8. Если esep не задан, используется значение по умолчанию.

Пример: без расстояния
graph {
    layout="fdp"
    sep="0"
    A -- B
    B -- C
    C -- D
    D -- A
}
Редактировать в Playground
Пример: расстояние 3
graph {
    layout="fdp"
    sep="3"
    A -- B
    B -- C
    C -- D
    D -- A
}
Редактировать в Playground
Применимо к:
  • Графам

Примечание: только fdp, neato, sfdp, osage, circo, twopi.

shape

Задает форму узла

тип: shape, по умолчанию: ellipse

digraph {
    "pentagon" [shape="pentagon"];
    "hexagon" [shape="hexagon"];
}
Редактировать в Playground
Применимо к:
  • Узлам

shapefile

Файл, содержащий пользовательское содержимое узла

тип: string, по умолчанию: ""

(Устарело).

Задает shape="box" узла. Изображение в файле формы должно быть прямоугольным. Поддерживаемые форматы изображений и точная семантика использования файла зависят от формата вывода. Подробности см. в разделах Форматы изображений и Внешние файлы PostScript.

Есть одно исключение из этого способа использования: если shape="epsf", shapefile задаёт имя файла, содержащего описание узла на PostScript. Графика должна включать всё содержимое узла, в том числе необходимые границы. Подробности см. в разделе Внешние файлы PostScript.

Поддерживаются только пути к локальным ресурсам. Если требуется использовать URL удалённого ресурса, см. скрипт dot_url_resolve.py.

Применимо к:
  • Узлам

showboxes

Выводит направляющие рамки для отладки

тип: int, по умолчанию: 0, минимум: 0

Выводит направляющие рамки в PostScript в начале маршрутов сплайнов, если showboxes=1, или в конце, если showboxes=2. (Только для отладки и режима TB!)

Применимо к:
  • Рёбрам
  • Узлам
  • Графам

Примечание: только dot.

sides

Число сторон при shape=polygon

тип: int, по умолчанию: 4, минимум: 0

Пример: многоугольники с 3–6 сторонами
graph {
  Triangle  [shape=polygon sides=3]
  Rectangle [shape=polygon sides=4]
  Pentagon  [shape=polygon sides=5]
  Hexagon   [shape=polygon sides=6]
}
Редактировать в Playground
Применимо к:
  • Узлам

size

Максимальная ширина и высота рисунка в дюймах

тип: double | point

Если задано только одно число, оно используется и для ширины, и для высоты.

Если атрибут задан, а рисунок больше указанного размера, рисунок равномерно уменьшается, чтобы поместиться в заданные пределы.

Если size заканчивается восклицательным знаком "!", то size считается желаемым минимальным размером. В этом случае, если оба измерения рисунка меньше size, рисунок равномерно увеличивается, пока хотя бы одно измерение не сравняется с соответствующим измерением в size.

Между атрибутами size и ratio существует некоторое взаимодействие.

Применимо к:
  • Графам

skew

Коэффициент наклона для shape=polygon

тип: double, по умолчанию: 0.0, минимум: -100.0

Положительные значения наклоняют верхнюю часть многоугольника вправо, отрицательные — влево.

См. также distortion.

Пример
graph {
  SkewLeft  [shape=polygon sides=4 skew=-.5]
  SkewRight [shape=polygon sides=4 skew=.5]
}
Открыть в Playground
Допустимо для:
  • Узлов

smoothing

Задает этап постобработки, используемый для сглаживания неравномерного распределения узлов.

тип: smoothType, значение по умолчанию: "none"

Допустимо для:
  • Графов

Примечание: только для sfdp.

sortv

Порядок сортировки компонентов графа для размещения packmode.

тип: int, значение по умолчанию: 0, минимум: 0

Если packmode задает размещение в виде массива, sortv определяет порядок вставки компонентов: сначала вставляются компоненты с меньшими значениями.

Допустимо для:
  • Графов
  • Кластеров
  • Узлов

splines

Определяет, как изображаются ребра и изображаются ли они вообще

тип: bool | string

Если задано splines=true, ребра изображаются сплайнами, проложенными в обход узлов; если задано splines=false, ребра изображаются отрезками. Если задано splines=none или splines="", ребра не изображаются.

(1 марта 2007 г.) splines=line и splines=spline можно использовать как синонимы для splines=false и splines=true соответственно.

Кроме того, splines=polyline задает изображение ребер в виде ломаных линий.

(28 сентября 2010 г.) splines=ortho задает прокладку ребер в виде ломаных из осевых отрезков. В настоящее время при такой прокладке не обрабатываются порты и, в dot, подписи ребер.

(25 сентября 2012 г.) splines=curved задает изображение ребер в виде кривых дуг.

splines=none
splines=""
splines=line
splines=false
splines=polyline splines=curved
splines=ortho splines=spline
splines=true

По умолчанию splines не задан. Его интерпретация зависит от движка компоновки. Для dot по умолчанию ребра изображаются сплайнами. Во всех остальных компоновках ребра по умолчанию изображаются отрезками.

Обратите внимание: для этих последних компоновок, если задано splines="true", требуются неперекрывающиеся узлы (см. overlap). Если для компоновки используется fdp и задано splines="compound", ребра прокладываются в обход как кластеров, так и узлов.

Допустимо для:
  • Графов

start

Параметр, используемый для определения начальной компоновки узлов

тип: startType, значение по умолчанию: ""

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

На следующих примерах показан один и тот же граф, но он отображается по-разному из-за разных значений start:

Начальное значение генератора случайных чисел — 1
graph {
    layout="fdp"
    start=1
    A -- B; B -- C; C -- D; D -- A
}
Открыть в Playground
Начальное значение генератора случайных чисел — 2, граф выглядит иначе
graph {
    layout="fdp"
    start=2
    A -- B; B -- C; C -- D; D -- A
}
Открыть в Playground
Допустимо для:
  • Графов

Примечание: только для neato, fdp, sfdp.

style

Задает сведения о стиле компонентов графа

тип: style, значение по умолчанию: ""

Для подграфов-кластеров, если задано style="filled", фон рамки кластера заполняется.

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

digraph {
  edge [style="invis"]
  a -> b
}
Открыть в Playground

то есть все ребра невидимы, ребро b->c может переопределить этот стиль следующим образом:

digraph {
  edge [style="invis"]
  a -> b
  b -> c [style=""]
}
Открыть в Playground

Разумеется, компонент также может явно задать атрибут style требуемым значением.

Допустимо для:
  • Ребер
  • Узлов
  • Кластеров
  • Графов

stylesheet

URL или путь к таблице стилей XML, используемой при выводе SVG

тип: string, значение по умолчанию: ""

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

См. также:

  • class
  • id
Допустимо для:
  • Графов

Примечание: только для svg.

tail_lp

Положение подписи у начала ребра, в пунктах.

тип: point

Положение указывает на центр подписи.

Допустимо для:
  • Ребер

Примечание: только для записи.

tailclip

Если значение истинно, конец ребра у его начала обрезается по границе узла

тип: bool, значение по умолчанию: true

в противном случае конец ребра доходит до центра узла или, если применимо, до центра порта.

Допустимо для:
  • Ребер

tailhref

Синоним атрибута tailURL.

тип: escString, значение по умолчанию: ""

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Допустимо для:
  • Ребер

Примечание: только для map и svg.

taillabel

Текстовая подпись, размещаемая у начала ребра

тип: lblString, значение по умолчанию: ""

См. ограничение.

Допустимо для:
  • Ребер

tailport

Указывает, где на начальном узле закрепить начало ребра

тип: portPos, значение по умолчанию: center

См. ограничение.

Допустимо для:
  • Ребер

tailtarget

Окно браузера, используемое для ссылки tailURL

тип: escString, значение по умолчанию: <none>

Если у ребра задан атрибут tailURL, tailtarget определяет, в каком окне браузера открывается URL.

Значение tailtarget=_graphviz откроет новое окно, если оно еще не существует, или повторно использует существующее.

Если значение не задано, используется значение атрибута target.

Допустимо для:
  • Ребер

Примечание: только для map и svg.

tailtooltip

Всплывающая подсказка, прикрепленная к началу ребра

тип: escString, значение по умолчанию: ""

Используется только в том случае, если у ребра задан атрибут tailURL.

  • edgetooltip.
  • headtooltip.
  • labeltooltip.
  • tooltip.
Допустимо для:
  • Ребер

Примечание: только для cmap и svg.

tailURL

Если задано, tailURL выводится как часть подписи у начала ребра

тип: escString, значение по умолчанию: ""

Это значение также используется рядом с начальным узлом, переопределяя любое значение атрибута URL.

См. ограничение.

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Допустимо для:
  • Ребер

Примечание: только для map и svg.

target

Если у объекта задан атрибут URL, этот атрибут определяет, в каком окне браузера открывается URL.

тип: escString | string, значение по умолчанию: <none>

См. документацию W3C.

Допустимо для:
  • Ребер
  • Узлов
  • Графов
  • Кластеров

Примечание: только для map и svg.

TBbalance

В какой ранг перемещать свободные (несвязанные) узлы

тип: string, значение по умолчанию: ''

Допустимые значения:

  • "min": переместить свободные (несвязанные) узлы в минимальный rank.
  • "max": переместить свободные (несвязанные) узлы в максимальный rank.
  • В противном случае свободные узлы размещаются произвольно.

Несмотря на название TBbalance («баланс сверху вниз»), этот параметр также работает с рангами слева направо, например, с rankdir=LR.

Примеры:

Поведение по умолчанию
digraph {
    layout="dot"

    { rank="min"; "min" }
    { rank="max"; "max" }
    "min" -> "middle" -> "max"
    
    "Floater 1"
    "Floater 2"
}
Открыть в Playground
Свободные узлы перемещены в минимальный ранг
digraph {
    layout="dot"
    TBbalance="min"

    { rank="min"; "min" }
    { rank="max"; "max" }
    "min" -> "middle" -> "max"
    
    "Floater 1"
    "Floater 2"
}
Открыть в Playground
Свободные узлы перемещены в максимальный ранг
digraph {
    layout="dot"
    TBbalance="max"

    { rank="min"; "min" }
    { rank="max"; "max" }
    "min" -> "middle" -> "max"
    
    "Floater 1"
    "Floater 2"
}
Открыть в Playground
Допустимо для:
  • Графов

Примечание: только для dot.

tooltip

Всплывающая подсказка (текст при наведении курсора), прикрепленная к узлу, ребру, кластеру или графу

тип: escString, значение по умолчанию: ""

Если tooltip не задан, Graphviz использует атрибут объекта label, если он определен.

Обратите внимание: если label представляет собой описание записи или HTML-подобную подпись, полученная подсказка может оказаться бесполезной. В этом случае, если подсказки будут создаваться, пользователю следует явно задать атрибут tooltip.

Всплывающие подсказки
digraph {
  label="Graph Label"
  tooltip="Graph Tooltip"
  subgraph cluster_a {
    label="Cluster Label"
    tooltip="Cluster Tooltip"
    Node1 [tooltip="Node1 Tooltip"]
    Node1 -> Node2 [label="Edge" tooltip="Edge Tooltip"]
  }
}
Открыть в Playground

См. также:

  • edgetooltip.
  • headtooltip.
  • labeltooltip.
  • tailtooltip.
Допустимо для:
  • Узлов
  • Ребер
  • Кластеров
  • Графов

Примечание: только для cmap и svg.

truecolor

Определяет, использует ли внутренняя растеризация цветовую модель truecolor или цветовую палитру

тип: bool

цветов.

Если truecolor не задан, truecolor не используется, если только для какого-либо узла графа не задано свойство shapefile. По возможности выходная модель будет соответствовать входной.

Использование цветовых палитр позволяет уменьшить расход памяти при создании растровых изображений и размер выходных файлов.

Обычно модель truecolor необходимо указывать только в том случае, если в графе используется более 256 цветов. Однако при использовании bgcolor=transparent с цветовой палитрой сглаживание шрифтов может создавать размытый белый ореол вокруг символов. Использование truecolor=true позволяет избежать этой проблемы.

Допустимо для:
  • Графов

Примечание: только для растрового вывода.

URL

Гиперссылки, включаемые в вывод, зависящий от устройства

тип: escString, значение по умолчанию: <none>

В настоящее время используется в форматах ps2, cmap, i*map и svg. Во всех этих форматах URL можно назначать узлам, ребрам и кластерам. Атрибуты URL также можно назначать корневому графу в форматах ps2, cmap и i*map. В первом случае это служит базовым URL для относительных URL, а во втором — файлом карты изображения по умолчанию.

Для вывода в форматах svg, cmapx и imap активная область узла соответствует его видимому изображению. Например, незаполненный узел без отображаемой границы будет активен только в области подписи. Для остальных форматов активная область соответствует ограничивающей рамке узла. Активная область кластера также соответствует его ограничивающей рамке. Для ребер активными областями являются небольшие круги в местах соединения ребра с начальным и конечным узлами. Кроме того, для форматов svg, cmapx и imap активная область включает узкий многоугольник, приблизительно повторяющий форму ребра. Круги могут накладываться на соответствующий узел, при этом URL ребра имеет приоритет. Если у ребра есть подпись, она также будет активной. Наконец, если у ребра есть подпись у начала или конца, она также будет активной.

Для ребер атрибуты headURL, tailURL, labelURL и edgeURL позволяют управлять различными частями ребра.

Если активные области двух ребер перекрываются, приоритет одной из них не определен.

См. также:

  • edgehref, edgeURL
  • headhref, headURL
  • labelhref, labelURL
  • tailhref, tailURL
  • href, URL
Пример: картины Ван Гога со ссылками
graph {
  label="Vincent van Gogh Paintings"
  URL="https://en.wikipedia.org/wiki/Vincent_van_Gogh"

  subgraph cluster_self_portraits {
    URL="https://en.wikipedia.org/wiki/Portraits_of_Vincent_van_Gogh"
    label="Self-portraits"

    "Self-Portrait with Grey Felt Hat" [URL="https://www.vangoghmuseum.nl/en/collection/s0016V1962"]
    "Self-Portrait as a Painter" [URL="https://www.vangoghmuseum.nl/en/collection/s0022V1962"]
  }
  
  subgraph cluster_flowers {
    URL="https://en.wikipedia.org/wiki/Sunflowers_(Van_Gogh_series)"
    label="Flowers"

    "Sunflowers" [URL="https://www.nationalgallery.org.uk/paintings/vincent-van-gogh-sunflowers"]
    "Almond Blossom" [URL="https://www.vangoghmuseum.nl/en/collection/s0176V1962"]
  }
}
Открыть в Playground
Допустимо для:
  • Ребер
  • Узлов
  • Графов
  • Кластеров

Примечание: только для map, postscript и svg.

vertices

Задает координаты вершин многоугольника узла в дюймах

тип: pointList

Используется, если узел имеет форму многоугольника, а формат вывода — dot или xdot.

Если узел имеет форму эллипса или круга, на вывод влияет атрибут samplepoints.

Допустимо для:
  • Узлов

Примечание: только для записи.

viewport

Окно обрезки итогового изображения

тип: viewPort, значение по умолчанию: ""

viewport имеет приоритет над любым атрибутом size. Ширина и высота окна просмотра точно задают итоговый размер вывода.

Допустимо для:
  • Графов

voro_margin

Настройка поля для метода Вороного

тип: double, значение по умолчанию: 0.05, минимум: 0.0

Коэффициент увеличения изображения, позволяющий оставить запас для расширения при использовании метода Вороного. dim' = (1+2*margin)*dim.

Допустимо для:
  • Графов

Примечание: только для neato, fdp, sfdp, twopi и circo.

weight

Вес ребра

тип: int | double, значение по умолчанию: 1, минимум: 0(dot,twopi), 1(neato,fdp)

В dot чем больше вес, тем короче, прямее и вертикальнее ребро.

Для twopi значение weight=0 указывает, что ребро не следует использовать при построении остовного дерева от корня.

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

В dot веса должны быть целыми числами.

Веса ребер
digraph {
  root -> a
  root -> b [weight=2]
  root -> c [weight=3]
}
Открыть в Playground
Допустимо для:
  • Ребер

width

Ширина узла в дюймах

тип: double, значение по умолчанию: 0.75, минимум: 0.01

Это значение задает начальную минимальную ширину узла. Если атрибут fixedsize имеет значение true, оно становится окончательной шириной узла. В противном случае, если для размещения подписи требуется большая ширина, ширина узла будет увеличена, чтобы подпись поместилась.

Если формат вывода — dot, значение, заданное для width, будет окончательным.

Если узел имеет правильную форму, ширина и высота становятся одинаковыми:

  • Если явно задана ширина или высота, используется это значение.
  • Если явно заданы и ширина, и высота, используется большее из двух значений.
  • Если ни одно значение не задано явно, используется меньшее из двух значений по умолчанию.

Если задано значение меньше минимального (0.01), оно будет округлено до этого минимума.

Пример ширины
digraph {
  "d" # default
  "1in" [width=1]
  "2in" [width=2]
}
Открыть в Playground
Допустимо для:
  • Узлов

xdotversion

Определяет версию xdot, используемую при выводе

тип: string

Используется только для вывода xdot.

Если значение не задано, Graphviz установит для этого атрибута версию xdot, используемую при выводе.

Допустимо для:
  • Графов

Примечание: только для xdot.

xlabel

Внешняя подпись узла или ребра

тип: lblString, значение по умолчанию: ""

  • Для узлов подпись размещается за пределами узла, но рядом с ним.
  • Для ребер подпись размещается около середины ребра. В dot это может быть полезно, чтобы избежать иногда возникающей проблемы, когда подписи ребер искажают компоновку.
  • В других компоновках атрибут xlabel можно рассматривать как синоним атрибута label.

Эти подписи добавляются после размещения всех узлов и ребер.

Подписи размещаются так, чтобы не перекрывать узлы и другие подписи. Поэтому разместить все подписи может оказаться невозможно. Чтобы принудительно разместить их все, задайте forcelabels=true.

Внешние подписи узлов и ребер
digraph {
  "⚡" [xlabel="Sparks"]
  "🔥" [xlabel="Fires"]
  "⚡"->"🔥" [xlabel="Sometimes" label="Cause"]
}
Открыть в Playground
Допустимо для:
  • Ребер
  • Узлов

xlp

Положение внешней подписи, в пунктах

тип: point

Положение указывает на центр подписи.

Допустимо для:
  • Узлов
  • Ребер

Примечание: только для записи.

z

Значение координаты Z для трехмерных компоновок и отображения

тип: double, значение по умолчанию: 0.0

Устарело: Используйте атрибут pos вместе с dimen и/или dim, чтобы указать размеры.

Если для графа установлено значение dim равное 3 (или больше), neato будет использовать значение z узла для z-координаты его начального положения, если также задан его атрибут pos.

Даже если во входных данных не указаны значения z, необходимо объявить атрибут z для узлов, например, используя node[z=""], чтобы получить значения z на выходе. Таким образом, установка dim=3 без объявления z приведёт к тому, что neato -Tvrml расположит граф в 3D, но спроецирует расположение на плоскость xy при визуализации. Если атрибут z объявлен, итоговая визуализация будет трёхмерной.

Применимо к:
  • Узлы

© 2025 The Graphviz Authors
Licensed under the Eclipse Public License 1.0.
https://www.graphviz.org/doc/info/attrs.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API