Pular para o conteúdo

Graphviz uma boa opção para gerar gráficos!

julho 27, 2010

Algum tempo estive trabalhando com o Graphviz para gerar diagramas para um projeto. Desde então trabalhei com um projeto em ruby onde encontrei uma ótima opção para interface desse software: http://github.com/glejeune/Ruby-Graphviz ,

Para quem ainda não conhece o graphviz ele é muito simples e não tem dificuldade em entendê-lo. Vejamos um simples hello world:

digraph G {Hello->World}

utilizando o dot geramos a saida em png:

~$ echo “digraph G {Hello->World}” | dot -Tpng >hello.png

Em meus projetos tive a necessidade de utilizar uma interface pra gerar a  estrutura do arquivo dot deixando assim de se preocupar com a parte tecnica e focando em nodes edges, graphs..

Com o projeto http://github.com/glejeune/Ruby-Graphviz vejamos o exemplo do hello world.

# Create a new graph
g = GraphViz.new(:ER,:type => :digraph)
hello = g.add_node(“hello”)
world = g.add_node(“world”)
g.add_edge(hello,world)
g.output( :png => “helloworld.png” )
Atualmente temos outras alternativas como o http://github.com/Sobe/IoGraphViz para Io e o http://github.com/vertocardoso/java-graphviz para java no qual eu criei.
Vejamos o mesmo exemplo usando o javagraphviz:

import com.couggi.javagraphviz.Digraph;
import com.couggi.javagraphviz.Graph;
import com.couggi.javagraphviz.GraphvizEngine;
import com.couggi.javagraphviz.Node;

public class HelloWorldSample {

  public static void main(String[] args) {

    // define a graph with the Digraph Type.
    Graph graph = new Digraph("G");
    // create nodes with names
    Node hello = graph.addNode("Hello");
    Node world = graph.addNode("World");
    // create a edge with hello node and world node.
    graph.addEdge(hello, world);
    // create the Graphviz engine to the graph
    GraphvizEngine engine = new GraphvizEngine(graph);
    // define the type of the output
    engine.type("png");
    // define the file name of the output.
    engine.toFilePath("helloworld.png");
    // generate output.
    engine.output();

  }
}
Sem dúvida o graphviz merece sua devida atenção! Quem tiver interesse em contribui, os projetos são de código aberto e estão disponíveis no github!
About these ads

From → Sem categoria

Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: