29 votes

Le sous-graphique de Graphviz n'est pas visualisé

J'essaie de créer un graphique avec deux sous-graphiques en point. Le code est comme suit:

 digraph G {
        subgraph step1 {
                style=filled;
                node [label="Compiler"] step1_Compiler;
                node [label="Maschine"] step1_Maschine;
                color=lightgrey;
        }

        subgraph step2 {
                style=filled;
                color=lightgrey;
                node [label="Interpretierer"] step2_Interpretierer;
                node [label="Maschine"] step2_Maschine;
                label="Virtuelle Maschine";
        }

        "Programm (Java)" -> step1_Compiler;
        step1_Compiler -> step1_Maschine;
        step1_Maschine -> "Bytecode";
        "Bytecode" -> step2_Interpretierer;
        step2_Interpretierer -> step2_Maschine;
        step2_Maschine -> "Ergebnis";
}
 

Le résultat que j'obtiens ressemble à ceci:

Résultat du code ci-dessus

Je m'attendais à voir une boîte autour des deux sous-graphiques. Qu'est-ce que j'oublie ici?

55voto

marapet Points 19796

Vous devez préfixer le nom de votre sousgraphes avec cluster:

subgraph clusterstep1 {

et

subgraph clusterstep2 {

afin d'obtenir le style et l'étiquette.

À partir de la graphiz documentation, section "les Sousgraphes et Clusters":

Le troisième rôle de sousgraphes directement lié à la manière dont le graphe sera fixées par la mise en page de certains moteurs. Si le nom de la sous-graphe commence avec cluster, Graphviz notes de la sous-graphe comme d'un groupe spécial sous-graphe. Si la prise en charge, la mise en page, le moteur de faire la mise en page afin que les nœuds appartenant au cluster sont rassemblées, avec l'ensemble de la le dessin de la grappe contenues dans un rectangle de délimitation. Note que, pour le bon et le mauvais, le cluster sousgraphes ne font pas partie de la DOT de la langue, mais uniquement syntaxique, convention respectées par certains de la mise en page des moteurs.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X