Inicio > Informática > Grafos en Latex: Graphviz

Grafos en Latex: Graphviz

septiembre 16, 2010 Deja un comentario Go to comments

Necesitaba realizar un grafo en latex, y me he encontrado con un programa muy interesante googleando.  He de decir que he llegado a él a través de emezeta, dónde hacen una buena introducción

Graphviz es un programa muy potente, que permite dibujar un grafo a partir de un fichero de configuración muy fácil de usar. Él solo distribuye los nodos, aunque también permite opciones para personalizar la colocación.  Se pueden llegar a hacer cosas tan interesantes como la siguiente, que se puede ver en la galería de graphviz:

El caso es que tengo que investigar más, porque necesito meter símbolos matemáticos dentro de los nodos del grafo, y según he leído, tiene que ser mediante html (preferiría que fuese latex).

No obstante, sí que le he encontrado una utilidad, para poder representar grafos de distancias, dado que trabajo muy a menudo con ellos. También tengo que investigar más en profundidad si el software te permite distribuir los nodos dependiendo de las distancias entre ellos, aunque creo que esto es más difícil. Lo que si que he hecho ha sido un script con awk que permite pasar de un fichero con formato “nodo nodo distancia” al formato .dot que acepta Graphviz.


BEGIN {print "digraph A {" }
{print $1 " -> " $2 " [label=\"" $3 "\"];"}
END {print "}" }

Por cierto, he de decir que sabía que awk era muy rápido, pero me ha sorprendido enormemente la velocidad de proceso que tiene. Comparada con el mismo script realizado con bash, tiene un speedup de x350!!!

Categorías:Informática Etiquetas:
  1. Jorge Navarro
    noviembre 24, 2010 a las 6:27 pm

    Hola caym,
    Soy un biólogo que quiero representar una red de transcripción con graphviz, pero tengo varios problemas ya que no se programar yo tengo los datos de la red en un text asi:
    gen1-gen2
    gen2-gen3
    …..-……
    queria saber si con tu script podría generar la red y si me lo podías pasar.

    Muchas gracias,

    Saludos,

    Jorge

    • noviembre 26, 2010 a las 11:55 am

      Copia y pega lo siguiente en un archivo de texto, y guárdalo como graphviz.awk

      
      #!/usr/bin/awk
      
      BEGIN {print "digraph A {" }
      {print $1 " -> " $2 ";"}
      END {print "}" }

      Para generar el fichero de graphviz, utiliza la siguiente orden, donde “fichero_datos” es el nombre de tu fichero de datos:

      cat fichero_datos | tr "-" " " | gawk -f graphviz.awk

  1. No trackbacks yet.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s