Атрибуты
В таблице ниже описаны атрибуты, используемые различными инструментами 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
}
- Графов
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]
}
- Узлов
- Кластеров
Примечание: только для patchwork.
arrowhead
тип: arrowType, значение по умолчанию: normal
Отображается только если атрибут dir имеет значение forward или both.
См. ограничение.
См. также:
Допустимо для:- Рёбер
arrowsize
тип: double, значение по умолчанию: 1.0, минимум: 0.0
digraph {
quiver -> "0.5" [arrowsize=0.5]
quiver -> "1"
quiver -> "2" [arrowsize=2]
quiver -> "3" [arrowsize=3]
}
- Рёбер
arrowtail
тип: arrowType, значение по умолчанию: normal
Отображается только если атрибут dir имеет значение back или both.
См. ограничение.
См. также:
Допустимо для:- Рёбер
bb
тип: rect
Допустимо для:- Кластеров
- Графов
Примечание: только для записи.
beautify
тип: bool, значение по умолчанию: false
Определяет, следует ли пытаться равномерно разместить висячие узлы по окружности вокруг корневого узла.
До Graphviz 8.0.1 на работу влияла проблема 2283: отображался на один сектор меньше необходимого, из-за чего первый и последний узлы перекрывались.
Примеры:
digraph G {
layout="sfdp"
beautify=true
N0 -> {N1; N2; N3; N4; N5; N6}
}
digraph G {
layout="sfdp"
beautify=false
N0 -> {N1; N2; N3; N4; N5; N6}
}
- Графов
Примечание: только для 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
}
}
- Графов
- Кластеров
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"
"🍔" -> "💩"
}
- Графов
class
тип: string, значение по умолчанию: ""
Используйте вместе с stylesheet, чтобы задавать стили SVG-вывода с помощью имён классов CSS.
Поддерживаются несколько классов, разделённых пробелами.
См. также:
Пример:
digraph G {
graph [class="cats"];
subgraph cluster_big {
graph [class="big_cats"];
"Lion" [class="yellow social"];
"Snow Leopard" [class="white solitary"];
}
}
- Рёбер
- Узлов
- Кластеров
- Графов
Примечание: только для 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";
}
}
- Кластеров
- Подграфов
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"]
}
даёт результат:
digraph G {
subgraph cluster_yellow {
color="yellow"
a [color="red"]
b [color="green"]
}
}
даёт результат:
См. также:
Допустимо для:- Рёбер
- Узлов
- Кластеров
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]
}
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]
}
См. также:
Допустимо для:- Рёбер
- Узлов
- Кластеров
- Графов
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"]
}
Вывод 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->B -->
<!-- I am an edge -->
<g id="edge1" class="edge">
<title>A->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
тип: bool, значение по умолчанию: false
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"];
}
- Графов
Примечание: только для dot.
concentrate
тип: bool, значение по умолчанию: false
Этот параметр объединяет кратные рёбра в одно и заставляет частично параллельные рёбра проходить часть пути вместе. Последняя возможность пока недоступна вне dot.
Работает только для несмежных узлов.
digraph {
concentrate=true
a -> b [label="1"]
c -> b
d -> b
}
- Графов
constraint
тип: bool, значение по умолчанию: true
Например, в графе:
digraph G {
a -> c;
a -> b;
b -> c [constraint=false];
}
ребро 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]
}
- Рёбер
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]
}
- Рёбер
diredgeconstraints
тип: string | bool, значение по умолчанию: false
Если задано значение true, для каждого ребра в наибольшем (эвристически найденном) ориентированном ациклическом подграфе создаются ограничения, требующие, чтобы ребро было направлено вниз.
Допустимо только при mode="ipsep".
Если задано hier, создаются ограничения уровней, аналогичные используемым вместе с mode="hier". Основное отличие состоит в том, что во втором случае используются только эти ограничения, поэтому можно применить более быстрый решатель.
- Графов
Примечание: только для neato.
distortion
тип: double, значение по умолчанию: 0.0, минимум: -100.0
Положительные значения увеличивают верхнюю часть по сравнению с нижней; отрицательные дают обратный эффект.
См. также skew.
graph {
LargeBottom [shape=polygon sides=4 distortion=-.5]
LargeTop [shape=polygon sides=4 distortion=.5]
}
- Узлам
dpi
тип: double, по умолчанию: 96.0, минимум: 0.0
Для вывода bitmap атрибут dpi гарантирует более точную отрисовку текста как по размеру, так и по расположению.
Для вывода SVG dpi гарантирует, что размеры в выходных данных соответствуют правильному количеству пунктов или дюймов.
- Графам
Примечание: только для растрового вывода и svg.
edgehref
edgeURL
тип: escString, по умолчанию: ""
См. также:
Применимо к:- Ребрам
Примечание: только для map и svg.
edgetarget
edgeURL тип: escString, по умолчанию: <none>
Если у ребра задан атрибут URL или edgeURL, edgetarget определяет, в каком окне браузера будет открываться URL, связанный с частью ребра без метки.
Если задано значение edgetarget=_graphviz, ссылка откроется в новом окне, если такого окна еще нет, или будет открыта в уже существующем окне.
Если значение не задано, используется значение атрибута target.
- Ребрам
Примечание: только для map и svg.
edgetooltip
тип: escString, по умолчанию: ""
- Ребрам
Примечание: только для cmap и svg.
edgeURL
тип: escString, по умолчанию: ""
edgeURL переопределяет любой атрибут URL, заданный для ребра.
Кроме того, edgeURL используется возле начального или конечного узла, если его не переопределяют соответственно атрибуты headURL или tailURL.
См. ограничение.
См. также:
Применимо к:- Ребрам
Примечание: только для 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"]
}
}
- Ребрам
- Узлам
- Графам
- Кластерам
fontnames
тип: 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
тип: 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"]
}
}
- Ребрам
- Узлам
- Графам
- Кластерам
forcelabels
xlabels, даже если они перекрываются тип: bool, по умолчанию: true
Если значение истинно, размещаются все атрибуты xlabel, даже если они частично перекрывают узлы или другие метки.
- Графам
gradientangle
тип: int, по умолчанию: 0, минимум: 0
При линейной заливке цвета переходят друг в друга вдоль линии, заданной углом и центром объекта. При радиальной заливке значение 0 задает переход цветов от центра по радиусу; при ненулевом значении переход цветов начинается из точки около периферии объекта, положение которой определяется этим значением.
Если значение не задано, угол по умолчанию равен 0.
Применимо к:- Узлам
- Кластерам
- Графам
group
тип: string, по умолчанию: ""
Если конечные точки ребра принадлежат одной группе, то есть имеют одинаковое значение атрибута group, параметры задаются так, чтобы избежать пересечений и сохранить прямолинейность ребер.
- Узлам
Примечание: только для dot.
head_lp
тип: point
Применимо к:- Ребрам
Примечание: только для записи.
headclip
тип: bool, по умолчанию: true
В противном случае конец ребра доходит до центра узла или, если применимо, до центра порта.
Применимо к:- Ребрам
headhref
headURL
тип: escString, по умолчанию: ""
См. также:
Применимо к:- Ребрам
Примечание: только для map и svg.
headlabel
тип: lblString, по умолчанию: ""
См. ограничение.
Применимо к:- Ребрам
headport
тип: portPos, по умолчанию: center
По умолчанию ребро направлено к центру узла и обрезается по границе узла.
См. ограничение.
Применимо к:- Ребрам
headtarget
headURL тип: escString, по умолчанию: <none>
Если у ребра задан атрибут headURL, headtarget определяет, в каком окне браузера будет открыт URL. Если задать значение headURL=_graphviz, ссылка откроется в новом окне, если такого окна еще нет, или будет открыта в уже существующем окне.
Если значение не задано, используется значение атрибута target.
- Ребрам
Примечание: только для map и svg.
headtooltip
тип: escString, по умолчанию: ""
Используется только в том случае, если для ребра задан атрибут headURL.
См. также:
Применимо к:- Ребрам
Примечание: только для cmap и svg.
headURL
headURL выводится как часть метки начального конца ребра тип: escString, по умолчанию: ""
Кроме того, это значение используется возле начального узла, переопределяя любое значение атрибута 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]
}
См. также:
Применимо к:- Узлам
href
URL
тип: escString, по умолчанию: ""
См. также:
Применимо к:- Графам
- Кластерам
- Узлам
- Ребрам
Примечание: только для 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"]
}
}
- Рёбер
- Узлов
- Графов
- Кластеров
label_scheme
|edgelabel|*, специальным узлом, представляющим метку ребра. тип: int, значение по умолчанию: 0, минимум: 0
- Значение по умолчанию,
label_scheme=0, не оказывает никакого эффекта. - Если задано
label_scheme=1,sfdpиспользует метод на основе штрафов, чтобы расположить такой узел ближе к центру его соседа. - При значении
label_scheme=2sfdpиспользует метод на основе штрафов, чтобы расположить такой узел ближе к прежнему центру его соседа. - Наконец, значение
label_scheme=3запускает двухэтапный процесс устранения перекрытий и выравнивания.
- Графов
Примечание: только sfdp.
labelangle
тип: double, значение по умолчанию: -25.0, минимум: -180.0
Вместе с атрибутом labeldistance определяет расположение headlabel / taillabel относительно начала / конца ребра в полярных координатах.
Начало координатной системы — точка соприкосновения ребра с узлом. Луч под углом 0 градусов направлен от начала координат назад вдоль ребра, параллельно ребру в этой точке.
Угол в градусах задаёт поворот относительно луча 0 градусов: положительные углы направлены против часовой стрелки, а отрицательные — по часовой стрелке.
Действует для:- Рёбер
labeldistance
тип: double, значение по умолчанию: 1.0, минимум: 0.0
Расстояние по умолчанию составляет 10 пунктов.
labeldistance умножает значение по умолчанию.
Дополнительные сведения см. в разделе labelangle.
- Рёбер
labelfloat
тип: bool, значение по умолчанию: false
В частности, метка может располагаться поверх других рёбер.
Действует для:- Рёбер
labelfontcolor
тип: 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, значение по умолчанию: ""
См. также:
Действует для:- Рёбер
Примечание: только map и svg.
labeljust
тип: string, значение по умолчанию: "c"
- Если задано
labeljust=r, метка выравнивается по правому краю ограничивающего прямоугольника - Если задано
labeljust=l, метка выравнивается по левому краю - В противном случае метка выравнивается по центру.
Обратите внимание, что подграф наследует атрибуты родительского графа. Поэтому, если корневой граф задаёт labeljust=l, подграф наследует это значение.
digraph {
label="l"
labeljust=l
a
}
digraph {
label="r"
labeljust=r
b
}
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
}
}
- Графов
- Кластеров
labelloc
тип: string, значение по умолчанию: "t" (кластеры), "b" (корневые графы), "c" (узлы)
Для графов и кластеров допустимы только labelloc=t и labelloc=b, соответствующие расположению сверху и снизу.
По умолчанию метки корневых графов располагаются снизу, а метки кластеров — сверху.
Обратите внимание, что подграф наследует атрибуты родительского графа. Поэтому, если корневой граф задаёт labelloc=b, подграф наследует это значение.
Для узлов этот атрибут используется, только если высота узла больше высоты его метки.
Если задано labelloc=t, labelloc=c или labelloc=b, метка выравнивается соответственно по верхнему краю, по центру или по нижнему краю узла.
По умолчанию метка выравнивается по вертикальному центру.
digraph {
labelloc="t"
label="Title"
a -> b
}
digraph {
labelloc="b"
label="Title"
a -> b
}
digraph {
label="Graph Title"
subgraph cluster_t {
labelloc="t"
label="Cluster Top"
a -> b
}
subgraph cluster_b {
labelloc="b"
label="Cluster Bottom"
c -> d
}
}
digraph {
t [labelloc=t]
c [labelloc=c]
b [labelloc=b]
}
- Узлов
- Графов
- Кластеров
labeltarget
labelURL тип: escString, значение по умолчанию: <none>
Если у ребра задан атрибут URL или labelURL, этот атрибут определяет, в каком окне браузера будет открываться URL, связанный с меткой.
Значение labeltarget=_graphviz откроет новое окно, если оно ещё не существует, или повторно использует его, если оно уже открыто.
Если значение не задано, используется значение атрибута target.
- Рёбер
Примечание: только map и svg.
labeltooltip
тип: escString, значение по умолчанию: ""
- Рёбер
Примечание: только cmap и svg.
labelURL
labelURL — это ссылка для метки ребра тип: escString, значение по умолчанию: ""
labelURL переопределяет любой атрибут URL, заданный для ребра.
См. также:
Действует для:- Рёбер
Примечание: только map и svg.
landscape
тип: bool, значение по умолчанию: false
Синоним rotate=90 или orientation=landscape.
digraph {
landscape=true
a -> b
}
См. также:
Действует для:- Графов
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)
См. также:
Действует для:- Рёбер
Примечание: только neato и fdp.
levels
тип: int, значение по умолчанию: INT_MAX, минимум: 0.0
- Графов
Примечание: только sfdp.
levelsgap
тип: 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"];
}
См. ограничение.
Действует для:- Рёбер
Примечание: только 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"];
}
См. ограничение.
Действует для:- Рёбер
Примечание: только dot.
lwidth
тип: double
Действует для:- Графов
- Кластеров
Примечание: доступен только для записи.
margin
тип: 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
}
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
}
}
- Узлов
- Кластеров
- Графов
maxiter
тип: int, по умолчанию: 100 * # nodes (mode == KK) , 200 (mode == major) , 30 (mode == sgd) , 600 (fdp)
- Графов
Примечание: только для neato и fdp.
mclimit
тип: double, по умолчанию: 1.0
Мультипликативный масштабный коэффициент, используемый для изменения параметров MinQuit (по умолчанию = 8) и MaxIter (по умолчанию = 24), применяемых при минимизации пересечений.
Они соответствуют количеству попыток без улучшения перед завершением работы и максимальному числу итераций в каждом проходе.
Допустим для:- Графов
Примечание: только для dot.
mindist
тип: double, по умолчанию: 1.0, минимум: 0.0
- Графов
Примечание: только для circo.
minlen
тип: int, по умолчанию: 1, минимум: 0
См. также:
Допустим для:- Рёбер
Примечание: только для 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.)
-
Gansner, E.R., Koren, Y., North, S. (2005). Построение графов методом мажоризации напряжений. В: Pach, J. (ред.) Построение графов. GD 2004. Конспекты лекций по информатике, том 3383. Springer, Берлин, Гейдельберг. ↩︎
-
Tomihisa Kamada, Satoru Kawai, Алгоритм построения общих неориентированных графов, Information Processing Letters, том 31, выпуск 1, 1989, страницы 7–15. ↩︎
-
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;
}
digraph {
nodesep=0.5;
node1; node2; node3;
}
- Графов
nojustify
тип: bool, по умолчанию: false
По умолчанию многострочные метки выравниваются в наиболее подходящем контексте. Поэтому в метке многоугольного узла строка с выравниванием по левому краю будет выровнена по левой стороне узла (с учётом заданного атрибутом margin отступа). В узлах-записях строка с выравниванием по левому краю будет выровнена по левой стороне содержащего её столбца полей. Если задано nojustify=true, многострочные метки выравниваются относительно самих себя.
Например, если задано nojustify, первая строка метки длинная, а вторая короче и выровнена по левому краю, вторая строка будет выровнена по крайнему левому символу первой независимо от размера узла.
См. пример с управляющей последовательностью \l (выравнивание по левому краю):
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
}
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
}
- Графов
- Кластеров
- Узлов
- Рёбер
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
тип: 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
}
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
}
- Графов
Примечание: только для 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
}
digraph {
orientation=L
a -> b
}
См. также:
Допустим для:- Узлов
- Графов
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
Если задано только одно значение, оно используется и для ширины, и для высоты.
Если задано 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;
}
digraph {
rankdir="BT"
a -> b -> c;
}
digraph {
rankdir="LR"
a -> b -> c;
}
digraph {
rankdir="RL"
a -> b -> c;
}
- Графам
Примечание: только 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
Обратите внимание, что эта настройка применяется до проверки ограничений атрибута 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];
}
- Узлам
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
}
См. также:
Применимо к:- Графам
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
Если задано только одно число, оно масштабирует и ширину, и высоту.
Применимо к:- Графам
Примечание: только 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
}
graph {
layout="fdp"
sep="3"
A -- B
B -- C
C -- D
D -- A
}
- Графам
Примечание: только fdp, neato, sfdp, osage, circo, twopi.
shape
тип: shape, по умолчанию: ellipse
digraph {
"pentagon" [shape="pentagon"];
"hexagon" [shape="hexagon"];
}
- Узлам
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
graph {
Triangle [shape=polygon sides=3]
Rectangle [shape=polygon sides=4]
Pentagon [shape=polygon sides=5]
Hexagon [shape=polygon sides=6]
}
- Узлам
size
Если задано только одно число, оно используется и для ширины, и для высоты.
Если атрибут задан, а рисунок больше указанного размера, рисунок равномерно уменьшается, чтобы поместиться в заданные пределы.
Если 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]
}
- Узлов
smoothing
тип: smoothType, значение по умолчанию: "none"
- Графов
Примечание: только для sfdp.
sortv
packmode. тип: int, значение по умолчанию: 0, минимум: 0
Если packmode задает размещение в виде массива, sortv определяет порядок вставки компонентов: сначала вставляются компоненты с меньшими значениями.
- Графов
- Кластеров
- Узлов
splines
Если задано 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:
graph {
layout="fdp"
start=1
A -- B; B -- C; C -- D; D -- A
}
graph {
layout="fdp"
start=2
A -- B; B -- C; C -- D; D -- A
}
- Графов
Примечание: только для neato, fdp, sfdp.
style
тип: style, значение по умолчанию: ""
Для подграфов-кластеров, если задано style="filled", фон рамки кластера заполняется.
Если для компонента задан атрибут стиля по умолчанию, отдельному компоненту можно задать style="", чтобы вернуть обычный стиль по умолчанию. Например, если граф имеет вид
digraph {
edge [style="invis"]
a -> b
}
то есть все ребра невидимы, ребро b->c может переопределить этот стиль следующим образом:
digraph {
edge [style="invis"]
a -> b
b -> c [style=""]
}
Разумеется, компонент также может явно задать атрибут style требуемым значением.
- Ребер
- Узлов
- Кластеров
- Графов
stylesheet
тип: string, значение по умолчанию: ""
Используйте вместе с class, чтобы применять стили к элементам с помощью селекторов CSS.
См. также:
Допустимо для:- Графов
Примечание: только для svg.
tail_lp
тип: point
Положение указывает на центр подписи.
Допустимо для:- Ребер
Примечание: только для записи.
tailclip
тип: bool, значение по умолчанию: true
в противном случае конец ребра доходит до центра узла или, если применимо, до центра порта.
Допустимо для:- Ребер
tailhref
tailURL. тип: escString, значение по умолчанию: ""
См. также:
Допустимо для:- Ребер
Примечание: только для map и svg.
taillabel
тип: lblString, значение по умолчанию: ""
См. ограничение.
Допустимо для:- Ребер
tailport
тип: portPos, значение по умолчанию: center
См. ограничение.
Допустимо для:- Ребер
tailtarget
tailURL тип: escString, значение по умолчанию: <none>
Если у ребра задан атрибут tailURL, tailtarget определяет, в каком окне браузера открывается URL.
Значение tailtarget=_graphviz откроет новое окно, если оно еще не существует, или повторно использует существующее.
Если значение не задано, используется значение атрибута target.
- Ребер
Примечание: только для map и svg.
tailtooltip
тип: escString, значение по умолчанию: ""
Используется только в том случае, если у ребра задан атрибут tailURL.
- Ребер
Примечание: только для cmap и svg.
tailURL
tailURL выводится как часть подписи у начала ребра тип: escString, значение по умолчанию: ""
Это значение также используется рядом с начальным узлом, переопределяя любое значение атрибута 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"
}
digraph {
layout="dot"
TBbalance="min"
{ rank="min"; "min" }
{ rank="max"; "max" }
"min" -> "middle" -> "max"
"Floater 1"
"Floater 2"
}
digraph {
layout="dot"
TBbalance="max"
{ rank="min"; "min" }
{ rank="max"; "max" }
"min" -> "middle" -> "max"
"Floater 1"
"Floater 2"
}
- Графов
Примечание: только для 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"]
}
}
См. также:
Допустимо для:- Узлов
- Ребер
- Кластеров
- Графов
Примечание: только для cmap и svg.
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 позволяют управлять различными частями ребра.
Если активные области двух ребер перекрываются, приоритет одной из них не определен.
См. также:
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"]
}
}
- Ребер
- Узлов
- Графов
- Кластеров
Примечание: только для 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]
}
- Ребер
width
тип: double, значение по умолчанию: 0.75, минимум: 0.01
Это значение задает начальную минимальную ширину узла. Если атрибут fixedsize имеет значение true, оно становится окончательной шириной узла. В противном случае, если для размещения подписи требуется большая ширина, ширина узла будет увеличена, чтобы подпись поместилась.
Если формат вывода — dot, значение, заданное для width, будет окончательным.
Если узел имеет правильную форму, ширина и высота становятся одинаковыми:
- Если явно задана ширина или высота, используется это значение.
- Если явно заданы и ширина, и высота, используется большее из двух значений.
- Если ни одно значение не задано явно, используется меньшее из двух значений по умолчанию.
Если задано значение меньше минимального (0.01), оно будет округлено до этого минимума.
digraph {
"d" # default
"1in" [width=1]
"2in" [width=2]
}
- Узлов
xdotversion
xdot, используемую при выводетип: string
Используется только для вывода xdot.
Если значение не задано, Graphviz установит для этого атрибута версию xdot, используемую при выводе.
- Графов
Примечание: только для xdot.
xlabel
тип: lblString, значение по умолчанию: ""
- Для узлов подпись размещается за пределами узла, но рядом с ним.
- Для ребер подпись размещается около середины ребра. В dot это может быть полезно, чтобы избежать иногда возникающей проблемы, когда подписи ребер искажают компоновку.
- В других компоновках атрибут xlabel можно рассматривать как синоним атрибута
label.
Эти подписи добавляются после размещения всех узлов и ребер.
Подписи размещаются так, чтобы не перекрывать узлы и другие подписи. Поэтому разместить все подписи может оказаться невозможно. Чтобы принудительно разместить их все, задайте forcelabels=true.
digraph {
"⚡" [xlabel="Sparks"]
"🔥" [xlabel="Fires"]
"⚡"->"🔥" [xlabel="Sometimes" label="Cause"]
}
- Ребер
- Узлов
xlp
тип: point
Положение указывает на центр подписи.
Допустимо для:- Узлов
- Ребер
Примечание: только для записи.
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