2008-11-03 19 views
9

Cuando cambié el rankdir de mi gráfico de LR a TD, mis nodos de registro también cambiaron su dirección de diseño, por lo que ya no se ven como un 'registro'. Intenté aplicar un rankdir por separado a los nodos, pero esto no tuvo ningún efecto.nódulos de registro y rankdir en graphviz

¿Cómo se mantienen los nodos de registro con la distribución correcta?

digraph sample { 
    graph [rankdir=TD]; 
    node [shape=record]; 

    A [label="ShouldBeTop | ShouldBeBottom"]; 
    B [label="Top | Bottom"]; 
    A -> B; 
} 

Respuesta

9

Teniendo en cuenta que rankdir sustituye eficazmente la noción de "arriba" y "abajo" para el gráfico dado, eso no es sorprendente.

Me temo que no hay un remedio fácil para esto, salvo hackear la fuente (y eso no sería nada fácil). Puede poner en las etiquetas de "{}" con algún tipo de masa-solución de búsqueda sustituir para conseguir el efecto requerido:

digraph sample { graph [rankdir=TD]; node [shape=record]; 

A [label="{ShouldBeTop | ShouldBeBottom}"]; 
B [label="{Top | Bottom}"]; A -> B; 
} 
5

Mediante la tabla HTML como etiquetas en lugar de registros. IIRC las etiquetas basadas en tabla no giran con la dirección de rango. Consulte http://www.graphviz.org/doc/info/shapes.html#html

+0

+1 para etiquetas similares a HTML. Desde el mismo enlace: _La forma basada en registros ha sido en gran parte reemplazada y muy generalizada por las etiquetas tipo HTML. – marapet