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
-
dot -Tpng VSTUP.dot > VÝSTUP.png
Syntaxe v příkladech
Orientovaný graf
kód v jazyce DOT - Zobrazit
-
digraph
-
{
-
dpi = 80;
-
A -> B [label = "hrana 1"];
-
B -> C [label = "hrana 2"];
-
C -> D [label = "hrana 3"];
-
B -> D;
-
E -> D;
-
F -> D;
-
A [style = filled, fillcolor = green];
-
B [label = "hlavní uzel"];
-
C [shape = box3d];
-
-
subgraph clusterAB
-
{
-
A; B;
-
style = rounded;
-
color = gray;
-
}
-
}
Neorientovaný graf
kód v jazyce DOT - Zobrazit
-
graph
-
{
-
rankdir = LR;
-
ratio = 0.5;
-
dpi = 70;
-
A -- B [label = "hrana 1"];
-
B -- C [label = "hrana 2"];
-
C -- D [label = "hrana 3"];
-
D -- A [label = "hrana 4"];
-
D -- E;
-
A [style = filled, fillcolor = red];
-
B [style = filled, fillcolor = green];
-
C [style = filled, fillcolor = yellow];
-
D [shape = point];
-
E [label = "zvláštní uzel", shape =
plaintext];
-
}
Diagram
kód v jazyce DOT - Zobrazit
-
digraph
-
{
-
"Jedinec (před)" [shape = box3d, style =
filled, fillcolor = black, color = white, fontcolor = white];
-
"Jedinec (po)" [shape = box3d, style = filled,
fillcolor = white, color = black, fontcolor = black];
-
"Operátor mutace" [color = gray];
-
"Jedinec (před)" -> "Operátor
mutace" -> "Jedinec (po)";
-
-
subgraph cluster0
-
{
-
style = filled;
-
color = gray90;
-
label = "příklad";
-
"10010110110101" [shape = box3d, style
= filled, fillcolor = black, color = white, fontcolor = white];
-
"10011110110110" [shape = box3d, style
= filled, fillcolor = white, color = black, fontcolor = black];
-
"Operátor mutace" [label =
"Operátor mutace", color = gray];
-
"10010110110101" -> "Operátor
mutace'" -> "10011110110110";
-
}
-
}
Hodnoty
Tvary uzlů
kód v jazyce DOT - Zobrazit
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
-
digraph structs
-
{
-
A [shape = record, label = "<l> L|<p>
P"];
-
A:l -> dir_L;
-
A:p -> dir_P;
-
}
Tvary šipek
kód v jazyce DOT - Zobrazit
-
A -> B [arrowhead = vee];
-
A -> B [arrowtail = vee];
-
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
forward, back, both, none
Reference