2010-06-09 28 views
18

Estoy tratando de tener una ventaja entre los clústeres en Graphviz donde el borde no afecta la clasificación.Borde recto entre los clústeres en Graphviz

Esto se ve bien:

digraph { 
    subgraph clusterX { 
    A  
    B 
    } 

    subgraph clusterY { 
    C 
    D 
    } 

    A -> B 
    B -> C [constraint=false] 
    C -> D 
} 

Sin embargo cuando agrego una etiqueta al borde C -> D el borde B -> C trata de eludir dicha etiqueta (que se ve feo).

digraph { 
    subgraph clusterX { 
    A  
    B 
    } 

    subgraph clusterY { 
    C 
    D 
    } 

    A -> B 
    B -> C [constraint=false] 
    C -> D [label=yadda] 
} 

Cualquier idea de cómo puedo mantener la ventaja B-C recta?

Respuesta

26

La forma más fácil lograr esto es agregar splines=false al archivo de puntos - esto fuerza el prestación de los bordes para ser líneas rectas:

digraph { 
splines=false; 
subgraph clusterX { 
    A; 
    B; 
} 

subgraph clusterY { 
    C; 
    D; 
} 

A -> B; 
B -> C [constraint=false]; 
C -> D [label=yadda]; 
} 

Salida:

graphviz output

2

Puede utilizar esta versión:

digraph G { 
    subgraph cluster_X { 
    A [ pos = "0,1!" ]; 
    B [ pos = "0,0!" ]; 
    } 
    subgraph cluster_Y { 
    C [ pos = "1,1!" ]; 
    D [ pos = "1,0!" ]; 
    } 
    A -> B 
    B -> C[label="yadda"] 
    C -> D; 
} 

continuación, utiliza Neato (no DOT)

neato -Tpng -oyadda.png yadda.dot 

y el resultado es:

alt text http://dl.dropbox.com/u/72629/yadda.png

+0

con Neato no consigo las cajas de racimo más. ¿Derecha? – towi

Cuestiones relacionadas