1 local gr
= require
"graph"
6 local g
= gr
.graph
{"G",
7 -- Need 'record' as shape attribute
8 node
= {shape
= "record"},
9 -- Classical graphviz record definition
11 label
="<f0> left|<f1> mid\\ dle|<f2> right"};
13 label
= "<f0> one|<f1> two"},
15 label
= "hello\\nworld 1|{ b |{c|<here> d|e}|f}|<g> g|{h|z}"},
17 gr
.edge
{"n1:f2", "n2:f1"},
19 gr
.edge
{"n2:f0:n", "n3:here:sw"},
20 gr
.edge
{"n1:f0", "n3:w"},
21 -- Luayats record definition using vbox and hbox function
27 gr
.hbox
{"c", "<here> d", "e"},
34 -- Same elements but starting top to down
40 gr
.vbox
{"c", "<here> d", "e"},
48 gr
.edge
{"n4:here", "n5:e"}
52 -- Layout using 'dot' (default) engine
58 -- Render into different formats
60 g
:render("pdf", "out.pdf")
61 g
:render("gif", "out.gif")
62 g
:render("svg", "out.svg")
63 g
:render("jpg", "out.jpg")
64 g
:render("png", "out.png")