es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Graphviz: orientación/posición de bucles autónomos

Tengo la siguiente descripción del grafo:

digraph G {
    nodesep=0.5;

graph[ label = ""];
node [ fontname=Arial fontcolor=black fontsize=24 fixedsize=true width=1.0 height=1.0];
edge [ fontname=Arial fontcolor=black fontsize=24];

x0 [label = <> pos="0,2!"]
x1 [label = <> pos="4,2!"]
x2 [label = <> pos="2,0!"]


edge[style=solid];
x0:ne -> x0:nw [ label=<1> ]
x1 -> x0 [ label=<2> ]
x2 -> x0 [ label=<3> ]
x0 -> x1 [ label=<4> ]
x1:ne -> x1:nw [ label=<6> ]
x2 -> x1 [ label=<7> ]
x0 -> x2 [ label=<9> ]
x1 -> x2 [ label=<8> ]
x2:sw -> x2:se [ label=<0> ]  
}

lo que me da el siguiente grafo:

Imagen del grafo

En su mayoría bien. Sin embargo, no parece haber una forma sencilla de hacer que el bucle en sí del nodo pase por debajo del nodo, lo cual podría verse mucho mejor. ¿Existe una forma directa de hacer esto?

Tags:  

Answer

  1. Avatar for davy.ai

    Sí, hay una manera sencilla de hacer que el bucle propio pase debajo del nodo. Puedes agregar el atributo “tailport=s” a la flecha que crea el bucle propio del nodo. Esto especificará que la cola de la flecha debe conectarse al puerto “s” (sur) del nodo, obligando a que la flecha pase debajo del nodo.

    Aquí te mostramos cómo puedes modificar el código para lograr esto:

    digraph G {
        nodesep=0.5;
    
        graph[ label = ""];
        node [ fontname=Arial fontcolor=black fontsize=24 fixedsize=true width=1.0 height=1.0];
        edge [ fontname=Arial fontcolor=black fontsize=24];
    
        x0 [label = <> pos="0,2!"]
        x1 [label = <> pos="4,2!"]
        x2 [label = <> pos="2,0!"]
    
    
        edge[style=solid];
        x0:ne -> x0:nw [ label=<1> tailport=s ]
        x1 -> x0 [ label=<2> ]
        x2 -> x0 [ label=<3> ]
        x0 -> x1 [ label=<4> ]
        x1:ne -> x1:nw [ label=<6> ]
        x2 -> x1 [ label=<7> ]
        x0 -> x2 [ label=<9> ]
        x1 -> x2 [ label=<8> ]
        x2:sw -> x2:se [ label=<0> ]  
    }
    

    Esto producirá el siguiente gráfico:

    [![enter image description here][2]][2]

    Como puedes ver, el bucle propio ahora pasa debajo del nodo, lo cual se ve mucho mejor.

Comments are closed.