J'ai un graphique que je veux que graphviz mette en page et visualise pour moi. Le graphique a 122 arêtes et 123 nœuds. Les bords sont de 4 types différents et je veux qu'ils puissent être distingués visuellement. Cependant je n'ai pas encore décidé quelle serait la meilleure façon de faire cela, j'aimerais jouer un peu avec les cadrans. Malheureusement, je ne vois rien comme un attribut "class" ou "stylesheet" pour les bords. Je ne peux définir les attributs visuels que pour chaque bord (beaucoup de répétitions). Peut-être ai-je raté quelque chose? Est-il possible, après tout, d'ajouter des arêtes à 4 groupes différents, puis de styliser les groupes, et non chaque arête individuellement?Graphviz: comment assigner le même style à un groupe d'arêtes?
Répondre
Pour le style des bords (ou noeuds) par groupe plutôt qu'individuellement, utilisez sous-graphe.
comme ceci:
digraph G {
node [style=filled,color="#5D8AA8", fillcolor="#5D8AA8"];
subgraph c1 {
edge [color="#004225", arrowsize="0.6", penwidth="1"];
"node 1" -> "node 3";
"node 5" -> "node 7";
"node 1" -> "node 2";
label = "";
}
subgraph c2 {
edge [color="#FBEC5D", arrowsize="1.2", penwidth="3"];
"node 2" -> "node 4";
"node 4" -> "node 6";
"node 3" -> "node 5";
"node 6" -> "node 8";
label = "";
}
begin -> "node 1";
start -> "node 2";
"node 1" -> "node 4"
"node 2" -> "node 6";
start [shape=diamond];}
Donc, si vous mettez le code ci-dessus dans un fichier w/extension ".dot"; puis le rendre dans graphviz ,, vous verrez trois différents types de bords, l'apparence sage.
Un type est le juste par défaut (couleur = noir, épaisseur = 1, etc.) - c'est-à-dire, ces arêtes ne sont pas affectées à un sous-graphe.
Les deux autres types d'arêtes (un groupe fin, vert foncé et un groupe épais, jaune vif) sont définis en fonction de l'affectation à l'un des deux groupes de sous-graphes.
sous-graphe est souvent utilisé pour visuellement surbrillance une grappe de noeuds (par exemple, de distinguer un « groupe » contigu particulier de noeuds à partir du reste des noeuds dans le graphe); Cependant, il n'y a aucune exigence (comme vous pouvez le voir dans mon exemple) que les arêtes que vous avez choisi de nommer par assignation à un sous-graphe donné appartiennent à un «groupe» contigu de nœuds - vous pouvez désigner les arêtes que vous souhaitez assigner un sous-graphe donné.)
pour moi, les nœuds de style par groupe est analogue à la pratique HTML de définir une classe et l'assigner à une collection de divs en HTML balisage
Bien que @ la réponse de doug est correcte (utiliser des sous-graphes pour attribuer un style similaire à des groupes d'objets), je crois que mon exemple est mieux:
digraph G {
compound=true;
subgraph columns {
c0r0 -> c0r1;
c0r1 -> c0r2;
c1r0 -> c1r1;
c1r1 -> c1r2;
c2r0 -> c2r1;
c2r1 -> c2r2;
}
subgraph rows {
edge [color=red, constraint=false];
c0r0 -> c1r0;
c1r0 -> c2r0;
c0r1 -> c1r1;
c1r1 -> c2r1;
c0r2 -> c1r2;
c1r2 -> c2r2;
}
}
cat square-digraph.dot | dot -Tsvg -o square-digraph.svg
Parfait, simplement parfait. – Pacerier
Pourquoi est-ce mieux? Ne pas vouloir te critiquer. Je ne sais pas assez graphviz pour comprendre comment c'est mieux et je suis curieux de savoir. –
J'aime simplement le diagramme qui en résulte. Le principe de la solution n'est pas différent. – bukzor
- 1. Comment assigner permissons du groupe utilisateur C#
- 2. Est-ce un graphique "Large" GraphViz, et comment le corriger?
- 3. Superposition de nœuds dans Graphviz
- 4. Comment assigner dynamiquement un attribut JavaScript 'onclick'?
- 5. Échangez le style CSS d'un groupe d'éléments sur le clic
- 6. Ant: copier le même groupe de fichiers à plusieurs endroits
- 7. Graphviz: Comment passer de .dot à un graphique?
- 8. assigner sockaddr à un autre change l'addr?
- 9. android assigner dynamicaly drawable à un imageview
- 10. comment assigner aléatoirement un proxy pour curl?
- 11. graphviz Tree Layout
- 12. Comment assigner une valeur à $ sys_root?
- 13. Comment assigner une fonction membre à un tableau et l'appeler
- 14. graphviz: modifications mineures pour rendre le graphique plus joli
- 15. ASP.NET Comment assigner le fichier .resx à RadioButtonList
- 16. Comment assigner un projet dans Mantis?
- 17. Comment partager le même style entre quelques sites?
- 18. Comment assigner par programme une image (Bitmap) à un contact?
- 19. Comment assigner plus d'un "CssClass" à un contrôle dans asp.net
- 20. WPF - Conserver le style de groupe dans ListView
- 21. Style de groupe Nstableview pour nsoutlineview
- 22. comment puis-je laisser 2 boutons radio chacun dans un groupe différent agir comme ils sont dans le même groupe?
- 23. droit à bords gauche à point (Graphviz)
- 24. Comment forcer la position des arêtes dans graphviz?
- 25. Mise en valeurs appariée dans le même groupe, RegEx C#
- 26. Comment assigner un tableau dans un fichier modèle smarty?
- 27. Requête SQL à afficher si deux utilisateurs du même groupe
- 28. Comment mettre le code XAML à droite dans un style?
- 29. Comment modifier le style pour un asp: textbox à codebehind?
- 30. données Assigner de jQuery getJSON à tableau
Comment peut-on définir le style par défaut pour les sous-graphes? – Pacerier
Il n'y a pas besoin de sous-graphes. Toutes les arêtes définies en-dessous d'une déclaration de style de bord avec "edge [color = ... etc]" utiliseront ce style. – Bousch