Domů » Informatika » Nástroje » Graphviz

Graphviz

Graphviz je sada nástrojů pro vykreslování grafů (dot, neato, fdp, sfdp, twopi, circo). Graf se zapíše pomocí speciálního jazyka a zvolený nástroj vhodně rozmístí jeho uzly, hrany, a vykreslí jej. S trochou cviku lze pomocí Graphvizu kreslit i různé diagramy, sítě a schémata.

Vykreslení grafu do souboru PNG:

kód v jazyce BASH - Zobrazit

  1. dot -Tpng VSTUP.dot > VÝSTUP.png

Syntaxe v příkladech

Orientovaný graf

kód v jazyce DOT - Zobrazit

  1. digraph
  2. {
  3.   dpi = 80;
  4.   A -> B [label = "hrana 1"];
  5.   B -> C [label = "hrana 2"];
  6.   C -> D [label = "hrana 3"];
  7.   B -> D;
  8.   E -> D;
  9.   F -> D;
  10.   A [style = filled, fillcolor = green];
  11.   B [label = "hlavní uzel"];
  12.   C [shape = box3d];
  13.  
  14.   subgraph clusterAB
  15.   {
  16.     A; B;
  17.     style = rounded;
  18.     color = gray;
  19.   }
  20. }
Neorientovaný graf

kód v jazyce DOT - Zobrazit

  1. graph
  2. {
  3.   rankdir = LR;
  4.   ratio = 0.5;
  5.   dpi = 70;
  6.   A -- B [label = "hrana 1"];
  7.   B -- C [label = "hrana 2"];
  8.   C -- D [label = "hrana 3"];
  9.   D -- A [label = "hrana 4"];
  10.   D -- E;
  11.   A [style = filled, fillcolor = red];
  12.   B [style = filled, fillcolor = green];
  13.   C [style = filled, fillcolor = yellow];
  14.   D [shape = point];
  15.   E [label = "zvláštní uzel", shape = plaintext];
  16. }
Diagram

kód v jazyce DOT - Zobrazit

  1. digraph
  2. {
  3.   "Jedinec (před)" [shape = box3d, style = filled, fillcolor = black, color = white, fontcolor = white];
  4.   "Jedinec (po)" [shape = box3d, style = filled, fillcolor = white, color = black, fontcolor = black];
  5.   "Operátor mutace" [color = gray];
  6.   "Jedinec (před)" -> "Operátor mutace" -> "Jedinec (po)";
  7.  
  8.   subgraph cluster0
  9.   {
  10.     style = filled;
  11.     color = gray90;
  12.     label = "příklad";
  13.     "10010110110101" [shape = box3d, style = filled, fillcolor = black, color = white, fontcolor = white];
  14.     "10011110110110" [shape = box3d, style = filled, fillcolor = white, color = black, fontcolor = black];
  15.     "Operátor mutace" [label = "Operátor mutace", color = gray];
  16.     "10010110110101" -> "Operátor mutace'" -> "10011110110110";
  17.   }
  18. }

Hodnoty

Tvary uzlů

kód v jazyce DOT - Zobrazit

  1. A [shape = box];

box, ellipse, circle, point, egg, plaintext, diamond, doublecircle, rect, note, tab, component, folder, box3d, record (viz dále)

Tvar „record“

kód v jazyce DOT - Zobrazit

  1. digraph structs
  2. {
  3.   A [shape = record, label = "<l> L|<p> P"];
  4.   A:l -> dir_L;
  5.   A:p -> dir_P;
  6. }
Tvary šipek

kód v jazyce DOT - Zobrazit

  1. A -> B [arrowhead = vee];
  2. A -> B [arrowtail = vee];
  3. A -> B [arrowsize = 1.5];

normal, inv, dot, invdot, odot, invodot, none, tee, empty, invempty, diamond, odiamond, ediamond, crow, box, obox, open, halfopen, vee

Směr šipek

kód v jazyce DOT - Zobrazit

  1. A -> B [dir = forward];

forward, back, both, none

Reference