osage
В качестве входных данных osage принимает любой граф в формате dot.
osage рекурсивно строит граф. На каждом уровне имеется набор узлов и набор кластерных подграфов. Сначала размещаются элементы каждого кластерного подграфа, затем кластерные подграфы и узлы текущего уровня позиционируются относительно друг друга, причём каждый кластерный подграф рассматривается как узел.
На каждом уровне узлы и кластерные подграфы рассматриваются как прямоугольники, которые нужно расположить вместе. В настоящее время рёбра при размещении не учитываются. Для размещения используются стандартные функции упаковки. В частности, атрибуты графа pack и packmode управляют компоновкой. Для каждого графа и кластера можно задать собственные значения этих атрибутов. Также помните, что кластер наследует значения атрибутов родительского графа.
После размещения всех узлов и кластеров прокладываются рёбра в соответствии со значением атрибута splines.
Пример:
graph {
layout=osage
subgraph cluster_0 {
label="composite cluster";
subgraph cluster_1 {
label="the first cluster";
C
L
U
S
T
E
R
}
subgraph cluster_2 {
label="the second\ncluster";
a
b
c
d
}
1
2
}
3
4
5
}
© 2025 The Graphviz Authors
Licensed under the Eclipse Public License 1.0.
https://www.graphviz.org/docs/layouts/osage/