2011-09-28 21 views
45

Estoy intentando crear un gráfico con dos subpárrafos en punto. El código es el siguiente:El gráfico de Graphviz no se visualiza

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"; 
} 

El resultado que estoy recibiendo el siguiente aspecto:

Result of above code

que esperaba ver un cuadro alrededor de los dos subgrafos. ¿Que me estoy perdiendo aqui?

Respuesta

93

Usted tiene que prefijar el nombre de sus subgrafos con cúmulo:

subgraph clusterstep1 { 

y

subgraph clusterstep2 { 

con el fin de conseguir el estilo y la etiqueta.

Desde el graphiz documentation, section "Subgraphs and Clusters":

El tercer papel de subgrafos implica directamente la manera en la gráfica será trazado por ciertos motores de diseño. Si el nombre del subgráfico comienza en con clúster, Graphviz toma nota del subgráfico como un clúster especial subgráfico. Si es compatible, el motor de diseño hará el diseño para que los nodos que pertenecen al clúster se dibujen juntos, con el dibujo completo del clúster contenido dentro de un rectángulo delimitador. Tenga en cuenta que, para bien o para mal, los subgrafos de clúster no son parte del lenguaje DOT , sino únicamente una convención sintáctica a la que se adhieren ciertos motores de disposición.

+0

¿Subgraph y Subgraph Cluster * ambos resultarán en una agrupación visual bajo los algoritmos de diseño? – Chris

+0

Muchas gracias. – sjas

Cuestiones relacionadas