Я использую Graphviz для автоматического создания диаграммы архитектуры. У меня возникли две следующие проблемы, и я надеялся получить помощь.
- Я использую UUID для уникальной идентификации компонента (пример:
"a5320de8-a320-11ea-bb37-0242ac130002" [label="Component A"]
). При отображении A -> B я получу «Компонент A» -> b0c5e47c. Что странно. Единственный способ сопоставить UUID с UUID - это заключить их в кавычки. Какие-либо предложения? - Я хочу выровнять кластеры определенным образом и в определенном направлении. Я пробовал
{rank=same; cluster_B, cluster_C, cluster_D};
и"9653369c-a322-11ea-bb37-0242ac130002" -> "aa31adb9-9621-40c2-855c-621832dd8c61" [style=invis]
, но ни одна из них не работает.
У меня есть три раздела в моем точечном файле:
- Компоненты (в этом разделе я перечисляю все более 100 компонентов и кодирую их цветом в соответствии с определенным правилом.
- Кластеры (в этом разделе я группирую компоненты в определенные «группы»)
- Диаграмма или отображение (в этом разделе я затем сопоставляю различные компоненты и кластеры).
Вот образец моего файла DOT.
digraph architecture {
#graph [rankdir=LR]
compound=true;
#Compliant
node[fillcolor="#013220" style="filled" shape=square fontcolor="white"];
"a5320de8-a320-11ea-bb37-0242ac130002" [label="Component A"]
"b0c5e47c-a320-11ea-bb37-0242ac130002" [label="Component B"]
#Clusters
#Customer-facing client application cluster
subgraph cluster_A{
label="Client Apps";
"f7b3915d-6b3d-4d4c-bef0-bdabda915c03";
"9912de2b-739a-4c5c-834e-e0c3d09d70d1";
"16bb2066-9293-470e-99ec-c59d8426c0ab";
"641a6601-f4f6-4c06-baa6-e5e232f8abed";
"c5e92b09-a470-4fb6-af5c-e5f7dbeff919";
}
#Diagrams
"f7b3915d-6b3d-4d4c-bef0-bdabda915c03" -> {"35305026-d285-458c-85ad-7eae4e785e84", "76e0e679-42a6-47f0-9164-abc223da07fe"};
76e0e679-42a6-47f0-9164-abc223da07fe" -> "35305026-d285-458c-85ad-7eae4e785108";
}
Однако я хочу расположить кластер определенным образом, например:
0
emie
31 Май 2020 в 12:44
1 ответ
Лучший ответ
- Как вы выяснили, дефисы не являются допустимыми символами в идентификаторе узла, если строка не заключена в кавычки. Если вам нужна дополнительная информация: https://www.graphviz.org/doc/info/ lang.html
- Прямого выравнивания кластеров не существует. Иногда вы можете принудительно выполнить желаемое выравнивание, встраивая несколько кластеров в другой кластер, чтобы «сжать» их. Например, вставьте B3 и B4 в кластер B34. Но никаких гарантий.
Вы можете использовать gvpr для изменения положения кластеров (и их содержимого), но это может оказаться довольно сложным.
0
sroush
31 Май 2020 в 17:07
Похожие вопросы
Новые вопросы
graphviz
Graphviz, разработанный AT & T Research Labs, является ведущим приложением для разметки и рисования графиков (объектов, состоящих из вершин, соединенных ребрами). Он включает в себя точечный язык, полный синтаксис для описания графа и набор механизмов компоновки. Graphviz является бесплатным и открытым исходным кодом.