Download Using Graphviz as a Library (cgraph version)
Transcript
Graphviz Library Manual, August 21, 2014 2 Contents 1 2 Introduction 1.1 String-based layouts . . 1.1.1 dot . . . . . . 1.1.2 xdot . . . . . . 1.1.3 plain . . . . . 1.1.4 plain-ext . . . 1.1.5 GXL and GML 1.2 Graphviz as a library . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4 5 5 6 7 7 7 Basic graph drawing 2.1 Creating the graph . . . . . . . . . . 2.1.1 Attributes . . . . . . . . . . 2.1.2 Attribute and HTML Strings 2.2 Laying out the graph . . . . . . . . 2.3 Rendering the graph . . . . . . . . . 2.3.1 Drawing nodes and edges . 2.4 Cleaning up a graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 8 10 16 17 17 19 20 Inside the layouts 3.1 dot . . . . . . 3.2 neato . . . . 3.3 fdp . . . . . . 3.4 sfdp . . . . . 3.5 twopi . . . . 3.6 circo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 22 22 24 24 24 25 4 The Graphviz context 4.1 Version-specific data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 26 5 Graphics renderers 5.1 The GVJ t data structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Inside the obj state t data structure . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Color information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 30 30 31 6 Adding Plug-ins 6.1 Writing a renderer plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Writing a device plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Writing an image loading plug-in . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 34 35 35 7 Unconnected graphs 37 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A Compiling and linking 42 B A sample program: simple.c 43 C A sample program: dot.c 44 D A sample program: demo.c 45