Jump to content

Graphviz (Português)

From ArchWiki
Status de tradução: Este artigo é uma tradução de Graphviz. Data da última tradução: 2026-08-23. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

De acordo com a Wikipédia:

"Graphviz (nome encurtado de Graph Visualization Software) é um pacote de ferramentas de código aberto [...] para desenhar grafos especificados em scripts em linguagem DOT."

Instalação

Instale o pacote graphviz.

Visualizadores:

  • KGraphViewer — Visualizador de arquivos Graphviz de grafo DOT do KDE.
https://apps.kde.org/kgraphviewer/ || kgraphviewer
  • xdot.py — Visualizador interativo para grafos escrito na linguagem DOT do Graphviz (construído em cima do GTK).
https://github.com/jrfonseca/xdot.py || xdot

Fonte

Você precisa instalar uma fonte para incluir strings (i.e., texto) no grafo. Para informações sobre como instalar fontes, veja Fonts.

Para ver quais fontes estão disponíveis:

$ fc-list

Para ver quais fontes o dot está usando:

$ dot example.gv -Tpng -o foo.png -v 2>&1 | grep font

Exemplo

Dica Para desenvolver grafos interativamente, tente o vimdot(1).

Aqui está um exemplo de arquivo dot.

exemplo.gv
digraph graph_name {
  graph [
    charset = "UTF-8";
    label = "sample graph",
    labelloc = "t",
    labeljust = "c",
    bgcolor = "#343434",
    fontcolor = white,
    fontsize = 18,
    style = "filled",
    rankdir = TB,
    margin = 0.2,
    splines = spline,
    ranksep = 1.0,
    nodesep = 0.9
  ];

  node [
    colorscheme = "rdylgn11"
    style = "solid,filled",
    fontsize = 16,
    fontcolor = 6,
    fontname = "Migu 1M",
    color = 7,
    fillcolor = 11,
    fixedsize = true,
    height = 0.6,
    width = 1.2
  ];

  edge [
    style = solid,
    fontsize = 14,
    fontcolor = white,
    fontname = "Migu 1M",
    color = white,
    labelfloat = true,
    labeldistance = 2.5,
    labelangle = 70
  ];

  // definir node
  alpha [shape = box];
  beta [shape = box];
  gamma [shape = Msquare];
  delta [shape = box];
  epsilon [shape = trapezium];
  zeta [shape = Msquare];
  eta;
  theta [shape = doublecircle];

  // definir edge
  alpha -> beta [label = "a-b", arrowhead = normal];
  alpha -> gamma [label = "a-g"];
  beta -> delta [label = "b-d"];
  beta -> epsilon [label = "b-e", arrowhead = tee];
  gamma -> zeta [label = "g-z"];
  gamma -> eta [label = "g-e", style = dotted];
  delta -> theta [arrowhead = crow];
  zeta -> theta [arrowhead = crow];
}

Para gerar uma imagem PNG deste arquivo:

$ dot -Tpng exemplo.gv -o exemplo.png

Veja também