jump to navigation

GraphViz, o LaTeX para diagramas junho 22, 2007

Posted by drlinux in GraphViz, Gráficos.
trackback

Conheci essa semana o GraphViz(de Graph Visualization Software) , que segundo definição da wikipédia inglesa, em tradução livre é: “Um pacote de ferramentas de código aberto iniciado pela AT&T Research Labs para desenho de gráficos especificados pela linguagem de script DOT.”
Em resumo: você pode fazer um gráfico(como diagramas) usando uma linguagem de script de fácil aprendizado.

Bom, deixemos de papo e vamos pôr a mão na massa.


Instalando o GraphViz
No Ubuntu
No modo texto:
sudo apt-get install graphviz
Ou no modo gráfico você pode no “Aplicações“…”Adcionar/Remover” e instalar o aplicativo DotEdit, que é também um visualizador de .dot.
Fazendo um diagrama simples
Cada palavra(numero ou texto, exceto palavras reservadas) é interpretada como nó, e os símbolos ( — ),( -> ) são usados para ligação de cada nó, por exemplo:
graph G {
a1 -- b1
}

Gerando o Gráfico
O comando para gerar o gráfico é o dot:
dot nome_do_arquivo.dot -T

Ele irá gerar o gráfico de nome_do_arquivo.dot, por padrão a saída é stdout(a própria tela).
Para gerar para um arquivo deve-se usar o parametro -o
Exemplo, gerando o aquivo em .png:
dot ex1.dot -Tpng -oex1.ong

Resultado
ex1.dot

Gráfico Direcionados(DiGraph)
São os gráficos Hierárquicos(com seta), que são iniciados pela palavra reservada e as ligações dos nós são feitas por ( -> ), Exemplo:

digraph g {
Presidente -> Ministro_Defesa
Presidente -> Ministro_Saude
Ministro_Defesa -> Comandante_Aeronautica
Ministro_Defesa -> Comandante_Exercito
}

Resultado:
ex2.dot

Formatando e Mudando os Rótulos

Os rótulos são feitos através da flag label entre colchetes, depois do nó ou ligação que se quer rotular. A mesma coisa acontece para as flags de formatação(como color, shape, style, etc), por exemplo:
digraph g {
pessoa1 [label="João Sem Dono", shape=box, style=filled, color=blue, height=0.5] ;
pessoa2 [label="Maria Preá", style=filled, color=pink];
pessoa1 -> pessoa2 [label="Gosta de"]
}

ext3.png

Fazendo Subgraphs
Sub-gráficos servem para categorizar certos nós, colocando-os unidos em uma “caixa”.
Exemplo:
digraph G {
label="Sistemas de informação - UFS";
node [style=filled,color=grey, shape=box];
ranksep=3;
ratio=auto;
subgraph cluster_0 {
style=filled;
color=lightgrey;
105131 [label="Cálculo I"];
105177 [label="Fund. de Álgebra para Computação "];
301011 [label="Introdução à Administração"];
103203 [label="Fundamentos da Computação"];
103204 [label="Programação I"];
label="PRIMEIRO PERIODO";
}
subgraph cluster_1 {
105134 [label="Vetores e Geometria Analítica"];
105151 [label="Fundamentos de Matemática"];
404102 [label="Inglês Instrumental I"];
103205 [label="Programação II"];
103238 [label="Org. e Arquitetura de Computadores"];
301083 [label="Org., Mét. e Sist. Administrativos"];
label="SEGUNDO PERIODO";
color=black
}
103204 -> 103205;
103204 -> 103238;
103203 -> 103238;
301011 -> 301083;
subgraph cluster_2 {
style=filled;
color=lightgrey;
label="TERCEIRO PERÍODO"
103116 [label="Probabilidade e Estatística"];
103328 [label="Teoria Geral dos Sistemas "];
407083 [label="Introdução à Metodologia Científica"];
103263 [label="Teoria da Computação"];
301114 [label="Sociologia das Organizações"];
103214 [label=" Est. de Dados p/ Sis. de Informação I"];
}
301083 ->103328
103205->103263
105151->103263
301011-> 301114
103205 -> 103214
subgraph cluster_3 {
color=black;
label="QUARTO PERÍODO"
103343 [label="Computador Ética e Sociedade"];
103209 [label="Lin. de Prog. p/ Sis. de Informação"];
103215 [label="Es. de Dados p/ Sis. de Informação II"];
103327 [label="Gestão da Informação"];
}
103214 -> 103209;
103214 -> 103215;
103263 -> 103215;
103328 -> 103327;
subgraph cluster_4 {
style=filled;
color=lightgrey;
label="QUINTO PERÍODO";
103264 [label="Linguagem Formais e Tradutores "];
103285 [label="Engenharia de Software I "];
103271 [label="Banco de Dados "];
301111 [label="Iniciação Empresarial"];
103249 [label="Sis. Operac.. p/ Sis. de Informação "];
}
103214 -> 103264;
103263 -> 103264;
103215 -> 103285;
103215 -> 103271;
301083 -> 301111;
103238 -> 103249;
103215 -> 103249;
subgraph cluster_5 {
color=black;
label="SEXTO PERÍODO";
103286 [label="Engenharia de Software II "];
103301 [label="Inteligência Artificial"];
103251 [label="Redes de Computadores "];
103329 [label="Sistemas de Informação"];
}
103285 -> 103286;
103271 -> 103286;
103328 -> 103301;
103209 -> 103301;
103209 -> 103251;
103263 -> 103251;
103285 -> 103329;
103327 -> 103329;
subgraph cluster_6 {
style=filled;
color=lightgrey;
label="SÉTIMO PERÍODO";
103288 [label="Qualidade de Software I "];
103381 [label="Auditoria e Segurança de Sistemas "];
103257 [label="Segurança e Gerência de Rede "];
103292 [label="Interface Homem-Máquina"];
103242 [label="Sistemas Distribuídos"];
}
103285 -> 103288;
103286 -> 103381;
103251 -> 103257;
103285 -> 103292;
103251-> 103242;
subgraph cluster_7 {
color=black;
label="OITAVO PERÍODO";
103287 [label="Gerência de Projetos"];
103372 [label="Est. Sup. em Sistemas de Informação"];
103362 [label="Trabalho de Conclusão de Curso I "];
}
103288 -> 103287;
103286 -> 103372;
103288 -> 103362;
subgraph cluster_8 {
style=filled;
color=lightgrey;
label="NONO PERÍODO";
103322 [label="Sistemas de Apoio à Decisão"];
103363 [label="Trabalho de Conclusão de Curso II"];
}
103328->103322;
103288->103363;
}

Diagrama do curdo de Sistemas de Informação da UFS

Outros Links sobre o GraphViz:

Site Oficial- Onde pode-se encontrar a documentação completa

Tutorial de GraphViz Dot em Linux Dev Center

Anúncios

Comentários»

1. battisti - fevereiro 4, 2008

Realmente é uma ferramenta muito interessante, valeu pela dica

2. battisti - fevereiro 5, 2008

não achei em nenhum repositório este tal de dotEdit, pode postar aqui por favor onde você achou ele.

3. drlinux - fevereiro 15, 2008

ele tinha no repositório do do ubuntu

4. DOT - Uma linguagem para criar gráficos « Anselmo - fevereiro 19, 2008

[…] DOT – Uma linguagem para criar gráficos 19Fev08 Vou começar com dois links, leiam eles e você não precisam ler o resto deste post Página em português sobre o assunto, foi ali que eu descobri esta tal de DOT […]

5. battisti - fevereiro 25, 2008

rapaz esse wordpress é muito louco coloquei uma referência do seu post em um post no meu blog e o próprio wordpress veio e colocou este comentário, CARAMBA É QUASE UMA ENTIDADE!

6. Trabalhando com Graphwiz « Antonio Polo - agosto 27, 2010

[…] Instalação: A instalação do Graphwiz pode ser feita através do synaptics do Ubuntu, ou então via apt-get, conforme abaixo: https://drlinux.wordpress.com/2007/06/22/graphviz-o-latex-para-diagramas/ […]

7. Jerri - novembro 8, 2012

I’d like to thank you for the efforts you’ve put in writing this blog.
I’m hoping to see the same high-grade blog posts by you later on as well. In fact, your creative writing abilities has motivated me to get my own, personal website now 😉

8. Luiz Rogério - dezembro 9, 2012

Muito bom o post, e uma ótima ferramenta! Me ajudou muito em uns trabalhos para representação de árvores binárias, heap e hash.

9. http://lebsocial.com - dezembro 26, 2012

If some one desires to be updated with most recent technologies then he must be pay a quick visit this site and be
up to date every day.

10. kostenlos spielen ohne anmeldung - fevereiro 14, 2013

I am regular reader, how are you everybody? This post posted
at this web site is truly good.

11. Shani - abril 18, 2013

Having read this I thought it was very enlightening. I appreciate you taking the
time and effort to put this information together. I
once again find myself personally spending a significant amount of time both reading and commenting.
But so what, it was still worth it!


Deixe um comentário

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

%d blogueiros gostam disto: