sous-graphe de cluster classement en dot
Je suis en train d'utiliser graphviz sur les médias wiki comme outil de documentation pour le logiciel.
Tout d'abord, j'ai documenté certaines relations de classe qui a bien fonctionné. Tout a été classé à la verticale comme prévu.
Mais, ensuite, certains de nos modules sont des dll, ce que je voulais pour séparer les dans une boîte. Quand j'ai ajouté les nœuds d'un cluster, ils ont eu de tranchant, mais les grappes semblent avoir une LR classement de la règle. Ou ajouté à un cluster cassé la TUBERCULOSE classement des nœuds du cluster apparaît maintenant sur le côté du graphique.
Ce graphique représente ce que je suis en train de faire: pour le moment, cluster1 et cluster2 apparaissent à la droit de cluster0.
J'ai envie/besoin d'apparaître ci-dessous.
<graphviz>
digraph d {
subgraph cluster0 {
A -> {B1 B2}
B2 -> {C1 C2 C3}
C1 -> D;
}
subgraph cluster1 {
C2 -> dll1_A;
dll1_A -> B1;
}
subgraph cluster2 {
C3 -> dll2_A;
}
dll1_A -> dll2_A;
}
</graphviz>
OriginalL'auteur Chris Becke | 2010-03-23
Vous devez vous connecter pour publier un commentaire.
La mise en page est une tentative par Point afin de minimiser la hauteur de l'ensemble.
Une raison pour le plus compact que la nécessaire mise en page est l'utilisation de l'edge qui va dans le sens inverse à partir de dll1_a à B1. Il essaie de tirer le cluster comme fermer et revenir sur le nœud de destination possible. Pour éviter ce bord affectant le graphique, soit vous détendre, le contrainte sur les bords vers le haut, comme illustré, ou dessiner le bord dans le sens de la marche et de l'utilisation de la dir attribut à l'inverse de la flèche.
Cela aidera avec de nombreuses mises en page mais il ne suffit pas de fixer l'exemple donné. Pour prévenir la Dot de maintien de la disposition compacte, il préfère vous pouvez ajouter un minlen attribut de bords qui doit rester (presque) à la verticale. Cela peut être difficile à calculer en général, mais est pratique pour régler manuellement les mises en page.
constraint = false
résout le problème. Plus généralement, on peut calculer l'ensemble de l'arrière bords basé sur la BFS ou DFS arbres sur le graphique (en supposant un sélectionné nœud racine).Généralement
constraint = false
fonctionne comme prévu. Parfois, cependant, déjà limitée graphique va entraîner une moins surprenant, mise en page si l'inverse de l'intentiondir = back
est plus clairement. Il est particulièrement sensible lorsque les nœuds ont des bords bien que pourrait tirer le nœud vers le haut ou vers le bas dans la hiérarchie.OriginalL'auteur Pekka
Mon expérience montre que
constraint=false
donne communément inutilement alambiqué bords. Il semble queweight=0
donne de meilleurs résultats:OriginalL'auteur Hartmut Schäfer
Ceci va produire le graphique que vous recherchez:
Ce que ce fait est de créer un sous-graphe qui est utilisée uniquement pour la mise en page à des fins de fournir du haut vers le bas de la commande que vous désirez.
Désolé, j'ai mal compris le graphe qui a été donné comme une partie de la question, et ont pensé qu'il était la cible que vous recherchez, pas ce que vous aviez.
OriginalL'auteur diverscuba23