Graphviz

Ando usando graphviz para dibujar los arboles que se crean cada que analizo una frase en japones. 

En Ubuntu es facil instalarlo (apt-get install graphviz) y listo. Pero surge un problema: Como ya esta compilado, la opcion "–with-fontconfig" tiene un valor de "yes", lo que hace que el programa siempre use un path predefinido para resolver los directorios en donde buscar las fuentes. Por esa razon, nunca me mostraba las letras en japones, no importando cuantas veces le dijera la fuente y en donde buscar. Segun la documentacion, si fontconfig no esta definido, los programas de graphviz revisan un par de variables de ambiente para saber en que path buscar las fuentes que se le indiquen.

Entender eso me llevo como 3 horas (nada mas vean la hora de este escrito). La solucion era facil (como siempre): Desinstalar la version de Ubuntu, bajar el codigo fuente y compilarlo directamente, usando –with-fontconfig=no.  Acto seguido, comienza a identificar los directorios que le especifico, pero marca error con la fuente "kochi-mincho.ttf". Probe con otras fuentes, especificamente con algunas de Microsoft, y todo funcionaba, excepto que no mostraba japones. Entonces se me ocurrio que probablemente el guion en el nombre de archivo era el problema, por lo que hice:

cd /usr/share/fonts/truetype/kochi

ln -s ./kochi-mincho-subst.ttf kochi.ttf

Ejecute el programa dot, y listo! El arbolito ya muestra lo que tiene que mostrar en japones. 

El archivo que entra esta en lenguaje DOT, que es muy sencillo y muy util. Aqui un ejemplo:

 digraph G {
      hola -> tu;
      tu -> jaja;
      jeje -> jiji;
      hola -> jeje;
}

El resultado es, en este caso, un grafo dirigido:

El resultado del codigo anterior

Y el comando para compilar es muy simple:

dot -Tjpg -O  digraph-test.dot

Se puede usar -v para verbose. 

De haber sabido que existia esto antes lo habria implementado ya en mi sistemita. Mas vale tarde que nunca.

Igual y esta informacion a alguien le puede servir Smile

13 Replies to “Graphviz”

  1. Y si ademas lo reportas a ubuntu? no se si el bugreport funcione… puesto que imagino lo va a mandar a debian… en todo caso en launchpad valdria la pena que añadieras que no funciona como debe funcionar esa chiva. O por mientras por que no intentas el reportbug para que te entretengas ;D

    Saludos.

  2. Orale, esta chido la es programa, me podria servir para varias cosas :mrgreen:
    Gracias por el tip 🙂

    Saludos y ojala todo este saliendo de maravilla por alla en este inicio de año.

  3. [quote comment=”1225″]me dio risa tus palabras de ejemplo (jaja, jeje, jiji).

    :grin:[/quote]
    [quote comment=”1226″]Algo hilarante el ejemplo jeje 🙄 .[/quote]
    Me uno al grupo… pero lo bueno es que lo hicistes jurular 🙂

  4. Hola.
    Por casualidad ¿no sabes alguna forma de poner en los grafos la flecha que marca el estado inicial?

    Estoy haciendo unos autómatas (GATN) para una gramática simple del español, y necesito poner una flecha que apunte hacia el estado inicial, y otra que apunte desde el estado final hacia afuera (para poner el pop de las subrutinas).

    Muy bien el blog. Saludos desde Chile!

    1. Creo que hay forma de hacer invisibles los bordes de los nodos. Podrías crear un nodo antes del estado inicial y otro después del final y crear aristas (flechas) hacia ellos.
      En casa reviso esto.

  5. Salu2 desde Venezuela muchas gracias justo encontre lo que necesito para vizualirar las salidas de mi proyecto estudiantil sobre redes electricas. buen blog =P

  6. Me agrada el ejemplo pude usar mi graphviz en darwin,
    y creeme me había costado, apenos ando comenzando
    a usar la terminal, y quería comenzar con librerías
    gráficas de 2d para Unix pero me ha costado un
    poco instalarlas y usarlas. Si tienes un rato libre
    ojala me puedas recomendar una que otra libreria
    y como instalarla.

    Me despido.

    DIOS TE AMA Y SIEMPRE ESTA CONTIGO

    1. Es muy útil. En ese sistema que hice (y que algún día pondré en mi Github, aunque el código está hecho con las patas) dibujo grafos extremadamente complejos, y graphviz nunca me dio otro problema.

Leave a Reply to Rafael Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.