2011-11-29 17 views
7

Tengo un gráfico que es procesado por neato y le agrego nuevos bordes. Sin embargo, no quiero que se muevan los nodos antiguos. Quiero que neato compute las nuevas posiciones de los nuevos nodos y los nodos antiguos permanezcan en el mismo lugar.graphviz - posiciones de nodo fijo

strict graph { 
    node0 [pos="1,2"]; 
    node1 [pos="2,3"]; 
} 

y añadir nuevas aristas:

strict graph { 
    node0 [pos="1,2"]; 
    node1 [pos="2,3"]; 
    node1 -- node2 [len="3"]; 
    ... 
} 

quiero conseguir las mismas posiciones en los nodos antiguos. Por ejemplo:

strict graph { 
    node0 [pos="1,2"]; 
    node1 [pos="2,3"]; 
    node2 [pos="3,4"]; 
    ... 
} 

¿Cómo puedo hacer eso?

Respuesta

13

Puede fijar la posición de un nodo configurando node attribute pin=true.

O ponga un '!' al final del atributo pos: pos="34,12!"

+0

'$ cat g.dot gráfico estricto { \t node0 [pos =" 2363.2,13230! "]; \t node1 [pos = "2452.2,1335!"]; \t node1 - node2 [len = "9.4"]; } ' y ejecutando neato:' $ neato g.dot gráfico estricto { \t nodo [label = "\ N"]; \t gráfico [bb = "0,0,71043,8.9511e + 05"]; \t node0 [pos = "64603,8.9509e + 05", ancho = "0,9027", alto = "0,5"]; \t node1 [pos = "71011,38647", width = "0.89579", height = "0.5"]; \t node2 [pos = "32.249,18", width = "0.89579", height = "0.5"]; \t node1 - node2 [len = "9.4", pos = "70988,38634 69544,37849 1500.7,817.18 55.599,30.708"]; } 'da números muy extraños – microo8

+0

¡Yay! Los '!' la versión funciona a través de pygraphviz también. La versión pin = true bloquea neato (cuando se establece a través de pygraphviz). – darkhipo

1

Ejecutarlo con la opción -n debería ser el truco.

+0

esto realmente funciona, pero ten en cuenta que solo funciona con 'neato'. –

Cuestiones relacionadas