miércoles, marzo 18, 2009

Tutorial simple de Graphviz: Graficando árboles (Programción Genética) con Graphviz en Linux Mandriva

Para los que constantemente estamos elaborando árboles, ya sabemos lo engorroso que puede ser hacerlos "a mano".

Una herramienta muy buena para hacer los árboles y otros dibujos es OpenOffice DRAW, con la opción maravillosa que tiene de marcar solo parte de nuestros dibujos, y solo esa parte marcada, exportarla a múltiples formatos (como EPS, PNG, GIF, JPG, etc.). Pero cuando tenemos muchos árboles, e.g. en Programación Genética, se antoja pensar en una aplicación que pueda hacerlo de forma automática, por medio de un codigo.

Pues teniendo lo anterior en mente halle, gracias a un artículo en LinuxJournal, la herramienta GRAPHVIZ, que hace lo que tanto buscaba, y de forma muy fácil.

Para instalarlo, en Linux Mandriva desde terminal como SUDO ejecutar:

$ urpmi graphviz

En otras distribuciones de Linux, abran su administrador de paquetes y búsquenlo. También desde la página de Graphviz pueden bajarlo e instalarlo.
Aquí les comparto un par de ejemplos del tipo de árboles que me interesaba hacer.
---------------------------------------------------------
Paso 1. Con un editor de texto generar un archivo con el codigo, e.g. este:

graph G {
node [shape=circle];
node0 [ label ="*"];
node1 [ label ="x"];

node2 [ label ="y"];


"node0" -- "node1";
"node0" -- "node2";
}


y guardenlo como arbol_01.dot

Observar:
i) Se declara el tipo de figura para los nodos.
ii) Se listan el número de nodos a usar, con la respectiva etiqueta para cada nodo con sus respectivas comillas.
iii) En la segunda parte del código, entre comillado se listan las relaciones, de qué nodo a qué nodo hay una conexión.
--- Así de simple ---

Paso 2. Abran una terminal y vayan donde tienen guardado el archivo antes generado. En la terminal ejecuten:

$ dot -Tps -o arbol_01.eps arbol_01.dot

De esta forma ordenan la creación del árbol en el archivo arbol_01.eps a partir del script en el archivo arbol_01.dot

Paso 3. Validen el árbol creado abriendo el archivo EPS recién creado.
(esta que pongo aquí esta en formato GIF para ejemplificar, pero como saben, el formato EPS es vectorizado, dando todas las ventajas de cambiar tamaños en las publicaciones sin pérdida de resolución)









Graphviz tiene muchas opciones, segun puede verse en su página y en el artículo del LinuxJournal, incluso permite la inclusión de etiquetas con LaTex, pero de momento esto que estoy usando se los comparto, ya si ustedes checan más opciones les agradezco me las hagan saber para enriquecer este sencillo tutorial.
----------------------------------------------------------

Ojalá les sea de utilidad.

Saludos a todos los amigos del Laboratorio de Evovisión en el CICESE-Ensenada, B.C. México.

;-)

Enlaces (URLs):

http://www.graphviz.org/
http://www.linuxjournal.com/article/7275
http://www.openoffice.org/

No hay comentarios.: