Dans le DOT
langage pour GraphViz
, j'essaye de représenter un diagramme de dépendance. J'ai besoin de pouvoir avoir des nœuds à l'intérieur d'un conteneur et de pouvoir rendre les nœuds et / ou conteneurs dépendants d'autres nœuds et / ou conteneurs.
J'utilise subgraph
pour représenter mes conteneurs. La liaison de nœuds fonctionne très bien, mais je ne peux pas comprendre comment connecter des sous-graphiques.
Compte tenu du programme ci-dessous, je dois être capable de me connecter cluster_1
et cluster_2
avec une flèche, mais tout ce que j'ai essayé crée de nouveaux nœuds au lieu de connecter les clusters:
digraph G {
graph [fontsize=10 fontname="Verdana"];
node [shape=record fontsize=10 fontname="Verdana"];
subgraph cluster_0 {
node [style=filled];
"Item 1" "Item 2";
label = "Container A";
color=blue;
}
subgraph cluster_1 {
node [style=filled];
"Item 3" "Item 4";
label = "Container B";
color=blue;
}
subgraph cluster_2 {
node [style=filled];
"Item 5" "Item 6";
label = "Container C";
color=blue;
}
// Renders fine
"Item 1" -> "Item 2";
"Item 2" -> "Item 3";
// Both of these create new nodes
cluster_1 -> cluster_2;
"Container A" -> "Container C";
}
fdp
. L'exemple lié et celui ci-dessus fonctionnent tous les deux (la dernière ligne de l'exemple ici doit utiliser les noms de sous-graphe et non l'étiquette et il peut être intéressant d'inclure des longueurs de ligne pour le graphe); c'est un peu serré tel quel).
fdp
v2.28.0 et en copiant / collant la source de l'exemple, les lignes se connectent au centre du sous-graphe, pas aux bords. Si vous ouvrez le .dot dans OmniGraffle, ils sont correctement connectés, tandis neato
que les dot
deux créent des nœuds superflus pour le cluster.