annotate toolboxes/graph_visualisation/share/man/man1/dot.1 @ 0:e9a9cd732c1e tip

first hg version after svn
author wolffd
date Tue, 10 Feb 2015 15:05:51 +0000
parents
children
rev   line source
wolffd@0 1 .TH DOT 1 "23 August 2004" \*(eX
wolffd@0 2 .SH NAME
wolffd@0 3 dot \- filter for drawing directed graphs
wolffd@0 4 .br
wolffd@0 5 neato \- filter for drawing undirected graphs
wolffd@0 6 .br
wolffd@0 7 twopi \- filter for radial layouts of graphs
wolffd@0 8 .br
wolffd@0 9 circo \- filter for circular layout of graphs
wolffd@0 10 .br
wolffd@0 11 fdp \- filter for drawing undirected graphs
wolffd@0 12 .br
wolffd@0 13 sfdp \- filter for drawing large undirected graphs
wolffd@0 14 .SH SYNOPSIS
wolffd@0 15 \fBdot\fR
wolffd@0 16 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
wolffd@0 17 [\fB\-T\fIlang\fR]
wolffd@0 18 [\fB\-l\fIlibfile\fR]
wolffd@0 19 [\fB\-o\fIoutfile\fR]
wolffd@0 20 [\fB\-K\fIlayout\fR]
wolffd@0 21 [\fB\-O\fR]
wolffd@0 22 [\fB\-P\fR]
wolffd@0 23 [\fB\-v\fR]
wolffd@0 24 [\fB\-V\fR]
wolffd@0 25 [files]
wolffd@0 26 .br
wolffd@0 27 \fBneato\fR
wolffd@0 28 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
wolffd@0 29 [\fB\-T\fIlang\fR]
wolffd@0 30 [\fB\-l\fIlibfile\fR]
wolffd@0 31 [\fB\-n\fR[\fB1\fR|\fB2\fR]]
wolffd@0 32 [\fB\-o\fIoutfile\fR]
wolffd@0 33 [\fB\-K\fIlayout\fR]
wolffd@0 34 [\fB\-O\fR]
wolffd@0 35 [\fB\-P\fR]
wolffd@0 36 [\fB\-v\fR]
wolffd@0 37 [\fB\-V\fR]
wolffd@0 38 [files]
wolffd@0 39 .br
wolffd@0 40 \fBtwopi\fR
wolffd@0 41 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
wolffd@0 42 [\fB\-T\fIlang\fR]
wolffd@0 43 [\fB\-l\fIlibfile\fR]
wolffd@0 44 [\fB\-o\fIoutfile\fR]
wolffd@0 45 [\fB\-K\fIlayout\fR]
wolffd@0 46 [\fB\-O\fR]
wolffd@0 47 [\fB\-P\fR]
wolffd@0 48 [\fB\-v\fR]
wolffd@0 49 [\fB\-V\fR]
wolffd@0 50 [files]
wolffd@0 51 .br
wolffd@0 52 \fBcirco\fR
wolffd@0 53 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
wolffd@0 54 [\fB\-T\fIlang\fR]
wolffd@0 55 [\fB\-l\fIlibfile\fR]
wolffd@0 56 [\fB\-o\fIoutfile\fR]
wolffd@0 57 [\fB\-K\fIlayout\fR]
wolffd@0 58 [\fB\-O\fR]
wolffd@0 59 [\fB\-P\fR]
wolffd@0 60 [\fB\-v\fR]
wolffd@0 61 [\fB\-V\fR]
wolffd@0 62 [files]
wolffd@0 63 .br
wolffd@0 64 \fBfdp\fR
wolffd@0 65 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
wolffd@0 66 [\fB\-T\fIlang\fR]
wolffd@0 67 [\fB\-l\fIlibfile\fR]
wolffd@0 68 [\fB\-o\fIoutfile\fR]
wolffd@0 69 [\fB\-K\fIlayout\fR]
wolffd@0 70 [\fB\-O\fR]
wolffd@0 71 [\fB\-P\fR]
wolffd@0 72 [\fB\-v\fR]
wolffd@0 73 [\fB\-V\fR]
wolffd@0 74 [files]
wolffd@0 75 .br
wolffd@0 76 \fBsfdp\fR
wolffd@0 77 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
wolffd@0 78 [\fB\-T\fIlang\fR]
wolffd@0 79 [\fB\-l\fIlibfile\fR]
wolffd@0 80 [\fB\-o\fIoutfile\fR]
wolffd@0 81 [\fB\-K\fIlayout\fR]
wolffd@0 82 [\fB\-O\fR]
wolffd@0 83 [\fB\-P\fR]
wolffd@0 84 [\fB\-v\fR]
wolffd@0 85 [\fB\-V\fR]
wolffd@0 86 [files]
wolffd@0 87 .SH DESCRIPTION
wolffd@0 88 .I dot
wolffd@0 89 draws directed graphs. It works well on DAGs and other graphs
wolffd@0 90 that can be drawn as hierarchies.
wolffd@0 91 It reads attributed graph files and writes drawings.
wolffd@0 92 By default, the output format
wolffd@0 93 .I dot
wolffd@0 94 is the input file with layout coordinates appended.
wolffd@0 95 .PP
wolffd@0 96 .I neato
wolffd@0 97 draws undirected graphs using ``spring'' models (see Kamada and Kawai,
wolffd@0 98 Information Processing Letters 31:1, April 1989). Input files must be
wolffd@0 99 formatted in the
wolffd@0 100 .I dot
wolffd@0 101 attributed graph language.
wolffd@0 102 By default, the output of
wolffd@0 103 .I neato
wolffd@0 104 is the input graph with layout coordinates appended.
wolffd@0 105 .PP
wolffd@0 106 .I twopi
wolffd@0 107 draws graphs using a radial layout (see G. Wills,
wolffd@0 108 Symposium on Graph Drawing GD'97, September, 1997).
wolffd@0 109 Basically, one node is chosen as the center and put at the origin.
wolffd@0 110 The remaining nodes are placed on a sequence of concentric circles
wolffd@0 111 centered about the origin, each a fixed radial distance from the
wolffd@0 112 previous circle.
wolffd@0 113 All nodes distance 1 from the center are placed on the first circle;
wolffd@0 114 all nodes distance 1 from a node on the first circle are placed on
wolffd@0 115 the second circle; and so forth.
wolffd@0 116 .PP
wolffd@0 117 .I circo
wolffd@0 118 draws graphs using a circular layout (see
wolffd@0 119 Six and Tollis, GD '99 and ALENEX '99, and
wolffd@0 120 Kaufmann and Wiese, GD '02.)
wolffd@0 121 The tool identifies biconnected components and draws the nodes of
wolffd@0 122 the component on a circle. The block\(hycutpoint tree
wolffd@0 123 is then laid out using a recursive radial algorithm. Edge
wolffd@0 124 crossings within a circle are minimized by placing as many edges on
wolffd@0 125 the circle's perimeter as possible.
wolffd@0 126 In particular, if the component is outerplanar, the component will
wolffd@0 127 have a planar layout.
wolffd@0 128 .PP
wolffd@0 129 If a node belongs to multiple non\(hytrivial biconnected components,
wolffd@0 130 the layout puts the node in one of them. By default, this is the first
wolffd@0 131 non\(hytrivial component found in the search from the root component.
wolffd@0 132 .PP
wolffd@0 133 .I fdp
wolffd@0 134 draws undirected graphs using a ``spring'' model. It relies on a
wolffd@0 135 force\(hydirected approach in the spirit of Fruchterman and Reingold
wolffd@0 136 (cf. Software\(hyPractice & Experience 21(11), 1991, pp. 1129\(hy1164).
wolffd@0 137 .PP
wolffd@0 138 .I sfdp
wolffd@0 139 also draws undirected graphs using the ``spring'' model described
wolffd@0 140 above, but it uses a multi-scale approach to produce layouts
wolffd@0 141 of large graphs in a reasonably short time.
wolffd@0 142 .SH OUTPUT FORMATS
wolffd@0 143 Dot uses an extensible plugin mechanism for its output renderers,
wolffd@0 144 so to see what output formats your installation of dot supports
wolffd@0 145 you can use ``dot \-Txxx'' (where xxx is an unlikely format)
wolffd@0 146 and check the warning message.
wolffd@0 147 Also, The plugin mechanism supports multiple implementations
wolffd@0 148 of the output formats.
wolffd@0 149 To see what variants are available, use, for example: ``dot \-Tpng:''
wolffd@0 150 and to force a particular variant, use, for example: ``dot \-Tpng:gd''
wolffd@0 151 .P
wolffd@0 152 Traditionally, dot supports the following:
wolffd@0 153 \fB\-Tps\fP (PostScript),
wolffd@0 154 \fB\-Tsvg\fP \fB\-Tsvgz\fP (Structured Vector Graphics),
wolffd@0 155 \fB\-Tfig\fP (XFIG graphics),
wolffd@0 156 \fB\-Tmif\fP (FrameMaker graphics),
wolffd@0 157 \fB\-Thpgl\fP (HP pen plotters), and \fB\-Tpcl\fP (Laserjet printers),
wolffd@0 158 \fB\-Tpng\fP \fB\-Tgif\fP (bitmap graphics),
wolffd@0 159 \fB\-Tdia\fP (GTK+ based diagrams),
wolffd@0 160 \fB\-Timap\fP (imagemap files for httpd servers for each node or edge
wolffd@0 161 that has a non\(hynull "href" attribute.),
wolffd@0 162 \fB\-Tcmapx\fP (client\(hyside imagemap for use in html and xhtml).
wolffd@0 163 Additional less common or more special\(hypurpose output formats
wolffd@0 164 can be found at http://www.graphviz.org/cvs/doc/info/output.html.)
wolffd@0 165 .P
wolffd@0 166 Alternative plugins providing support for a given output format
wolffd@0 167 can be found from the error message resulting from appending a ':' to the format. e.g. \fB-Tpng:\fP
wolffd@0 168 The first plugin listed is always the default.
wolffd@0 169 .P
wolffd@0 170 The \fB\-P\fP switch can be used to produce a graph of all output variants supported by plugins in the local installation of graphviz.
wolffd@0 171 .SH GRAPH FILE LANGUAGE
wolffd@0 172 Here is a synopsis of the graph file language, traditionally using the extension \fB.dot\fR, for graphs:
wolffd@0 173 .PP
wolffd@0 174 [\fBstrict\fR] (\fBgraph\fR|\fBdigraph\fR) \fIname\fP { \fIstatement\(hylist\fP }\fR
wolffd@0 175 .br
wolffd@0 176 Is the top level graph. If the graph is \fBstrict\fR then multiple edges are
wolffd@0 177 not allowed between the same pairs of nodes.
wolffd@0 178 If it is a directed graph, indicated by \fBdigraph\fR,
wolffd@0 179 then the \fIedgeop\fR must be "\->". If it is an undirected \fBgraph\fR
wolffd@0 180 then the \fIedgeop\fR must be "\-\-".
wolffd@0 181 Statements may be:
wolffd@0 182 .PP
wolffd@0 183 \fIname\fB=\fIval\fB;\fR
wolffd@0 184 .br
wolffd@0 185 \fBnode [\fIname\fB=\fIval\fB];\fR
wolffd@0 186 .br
wolffd@0 187 \fBedge [\fIname\fB=\fIval\fB];\fR
wolffd@0 188 .br
wolffd@0 189 Set default graph, node, or edge attribute \fIname\fP to \fIval\fP.
wolffd@0 190 Any subgraph, node, or edge appearing after this inherits the new
wolffd@0 191 default attributes.
wolffd@0 192 .PP
wolffd@0 193 \fBn0 [\fIname0=val0,name1=val1,...\fB];\fR
wolffd@0 194 Creates node \fBn0\fP (if it does not already exist)
wolffd@0 195 and sets its attributes according to the optional list.
wolffd@0 196 .PP
wolffd@0 197 \fBn0 \fIedgeop\fR n1 \fIedgeop\fR \fI...\fB \fIedgeop\fR nn [\fIname0=val0,name1=val1,...\fB];\fR
wolffd@0 198 .br
wolffd@0 199 Creates edges between nodes \fBn0\fP, \fBn1\fP, ..., \fBnn\fP and sets
wolffd@0 200 their attributes according to the optional list.
wolffd@0 201 Creates nodes as necessary.
wolffd@0 202 .PP
wolffd@0 203 [\fBsubgraph \fIname\fB] { \fIstatement\(hylist \fB}\fR
wolffd@0 204 .br
wolffd@0 205 Creates a subgraph. Subgraphs may be used in place
wolffd@0 206 of \fBn0\fP, ..., \fBnn\fP in the above statements to create edges.
wolffd@0 207 [\fBsubgraph \fIname\fR] is optional;
wolffd@0 208 if missing, the subgraph is assigned an internal name.
wolffd@0 209 .PP
wolffd@0 210 Comments may be /*C\(hylike*/ or //C++\(hylike.
wolffd@0 211
wolffd@0 212 .PP
wolffd@0 213 Attribute names and values are ordinary (C\(hystyle) strings.
wolffd@0 214 The following sections describe attributes that control graph layout.
wolffd@0 215
wolffd@0 216 .SH "GRAPH ATTRIBUTES"
wolffd@0 217 .PP
wolffd@0 218 \fBsize="\fIx,y\fP"\fR sets bounding box of drawing in inches.
wolffd@0 219 .PP
wolffd@0 220 \fBpage="\fIx,y\fP"\fR sets the PostScript pagination unit.
wolffd@0 221 .PP
wolffd@0 222 \fBratio=\fIf\fR sets the aspect ratio to \fIf\fP which may be
wolffd@0 223 a floating point number, or one of the keywords \fBfill\fP,
wolffd@0 224 \fBcompress\fP, or \fBauto\fP.
wolffd@0 225 .PP
wolffd@0 226 \fBlayout=\fIengine\fR indicates the preferred layout engine ("dot", "neato", fdp" etc) overriding the default from the basename of the command or the -K commandline option.
wolffd@0 227 .PP
wolffd@0 228 \fBmargin=\fIf\fR sets the page margin (included in the page size).
wolffd@0 229 .PP
wolffd@0 230 \fBnodesep=\fIf\fR sets the minimum separation between nodes.
wolffd@0 231 .PP
wolffd@0 232 \fBranksep=\fIf\fR sets the minimum separation between ranks.
wolffd@0 233 .PP
wolffd@0 234 \fBordering=out\fR constrains order of out\(hyedges in a subgraph
wolffd@0 235 according to their file sequence.
wolffd@0 236 .PP
wolffd@0 237 \fBrankdir=LR|RL|BT\fR requests a left\(hyto\(hyright, right\(hyto\(hyleft, or bottom\(hyto\(hytop, drawing.
wolffd@0 238 .PP
wolffd@0 239 \fBpagedir=\fR[TBLR][TBLR] sets the major and minor order of pagination.
wolffd@0 240 .PP
wolffd@0 241 \fBrank=same\fR (or \fBmin\fP or \fBmax\fP) in a subgraph
wolffd@0 242 constrains the rank assignment of its nodes. If a subgraph's
wolffd@0 243 name has the prefix \fBcluster\fP, its nodes are drawn in
wolffd@0 244 a distinct rectangle of the layout. Clusters may be nested.
wolffd@0 245 .PP
wolffd@0 246 \fBrotate=90\fR sets landscape mode.
wolffd@0 247 (\fBorientation=land\fR is backward compatible but obsolete.)
wolffd@0 248 .PP
wolffd@0 249 \fBcenter=\fIn\fR a non\(hyzero value centers the drawing on the page.
wolffd@0 250 .PP
wolffd@0 251 \fBnslimit=\fIf\fR or \fBmclimit=\fIf\fR adjusts the bound on the
wolffd@0 252 number of network simplex or mincross iterations by the given ratio.
wolffd@0 253 For example, \fBmclimit=2.0\fP runs twice as long.
wolffd@0 254 .PP
wolffd@0 255 \fBlayers="\fIid:id:id:id\fR" is a sequence of layer identifiers for
wolffd@0 256 overlay diagrams. The PostScript array variable \fIlayercolorseq\fR
wolffd@0 257 sets the assignment of colors to layers. The least index is 1 and
wolffd@0 258 each element must be a 3\(hyelement array to be interpreted as a color coordinate.
wolffd@0 259 .PP
wolffd@0 260 \fBcolor=\fIcolorvalue\fR sets foreground color (\fBbgcolor\fP for background).
wolffd@0 261 .PP
wolffd@0 262 \fBhref=\fI"url"\fR the default url for image map files; in PostScript files,
wolffd@0 263 the base URL for all relative URLs, as recognized by Acrobat Distiller
wolffd@0 264 3.0 and up.
wolffd@0 265 .PP
wolffd@0 266 \fBURL=\fI"url"\fR ("URL" is a synonym for "href".)
wolffd@0 267 .PP
wolffd@0 268 \fBstylesheet=\fI"file.css"\fR includes a reference to a stylesheet
wolffd@0 269 in \-Tsvg and \-Tsvgz outputs. Ignored by other formats.
wolffd@0 270 .PP
wolffd@0 271 \fBsplines\fR. If set to \fItrue\fR, edges are
wolffd@0 272 drawn as splines.
wolffd@0 273 If set to \fIpolyline\fR, edges are
wolffd@0 274 drawn as polylines.
wolffd@0 275 If set to \fIortho\fR, edges are
wolffd@0 276 drawn as orthogonal polylines.
wolffd@0 277 In all of these cases, the nodes may not overlap.
wolffd@0 278 If \fBsplines=\fIfalse\fR or \fBsplines=\fIline\fR, edges are
wolffd@0 279 drawn as line segments.
wolffd@0 280 The default is \fItrue\fR for dot, and \fIfalse\fR for all other layouts.
wolffd@0 281
wolffd@0 282 .PP
wolffd@0 283 \fB(neato\(hyspecific attributes)\fR
wolffd@0 284 .br
wolffd@0 285 \fBstart=\fIval\fR. Requests random initial placement and seeds
wolffd@0 286 the random number generator. If \fIval\fP is not an integer,
wolffd@0 287 the process ID or current time is used as the seed.
wolffd@0 288 .PP
wolffd@0 289 \fBepsilon=\fIn\fR. Sets the cutoff for the solver.
wolffd@0 290 The default is 0.1.
wolffd@0 291
wolffd@0 292 .PP
wolffd@0 293 \fB(twopi\(hyspecific attributes)\fR
wolffd@0 294 .br
wolffd@0 295 \fBroot=\fIctr\fR. This specifies the node to be used as the center of
wolffd@0 296 the layout. If not specified, \fItwopi\fP will randomly pick one of the
wolffd@0 297 nodes that are furthest from a leaf node, where a leaf node is a node
wolffd@0 298 of degree 1. If no leaf nodes exists, an arbitrary node is picked as center.
wolffd@0 299 .PP
wolffd@0 300 \fBranksep=\fIval\fR. Specifies the radial distance in inches between
wolffd@0 301 the sequence of rings. The default is 0.75.
wolffd@0 302 .PP
wolffd@0 303 \fBoverlap=\fImode\fR. This specifies what \fItwopi\fP should do if
wolffd@0 304 any nodes overlap. If mode is \fI"false"\fP, the program uses Voronoi
wolffd@0 305 diagrams to adjust the nodes to eliminate overlaps. If mode is \fI"scale"\fP,
wolffd@0 306 the layout is uniformly scaled up, preserving node sizes, until nodes no
wolffd@0 307 longer overlap. The latter technique removes overlaps while preserving
wolffd@0 308 symmetry and structure, while the former removes overlaps more compactly
wolffd@0 309 but destroys symmetries.
wolffd@0 310 If mode is \fI"true"\fP (the default), no repositioning is done.
wolffd@0 311
wolffd@0 312 .PP
wolffd@0 313 \fB(circo\(hyspecific attributes)\fR
wolffd@0 314 .br
wolffd@0 315 \fBroot=\fInodename\fR. Specifies the name of a node occurring in the
wolffd@0 316 root block. If the graph is disconnected, the \fBroot\fP node attribute
wolffd@0 317 can be used to specify additional root blocks.
wolffd@0 318 .PP
wolffd@0 319 \fBmindist=\fIvalue\fR. Sets the minimum separation between all nodes. If not
wolffd@0 320 specified then \fIcirco\fP uses a default value of 1.0.
wolffd@0 321
wolffd@0 322 .PP
wolffd@0 323 \fB(fdp\(hyspecific attributes)\fR
wolffd@0 324 .br
wolffd@0 325 \fBK=\fIval\fR. Sets the default ideal node separation
wolffd@0 326 in the layout.
wolffd@0 327 .PP
wolffd@0 328 \fBmaxiter=\fIval\fR. Sets the maximum number of iterations used to
wolffd@0 329 layout the graph.
wolffd@0 330 .PP
wolffd@0 331 \fBstart=\fIval\fR. Adjusts the random initial placement of nodes
wolffd@0 332 with no specified position. If \fIval\fP is is an integer,
wolffd@0 333 it is used as the seed for the random number generator.
wolffd@0 334 If \fIval\fP is not an integer, a random system\(hygenerated integer,
wolffd@0 335 such as the process ID or current time, is used as the seed.
wolffd@0 336 .PP
wolffd@0 337
wolffd@0 338 .SH "NODE ATTRIBUTES"
wolffd@0 339 .PP
wolffd@0 340 \fBheight=\fId\fR or \fBwidth=\fId\fR sets minimum height or width.
wolffd@0 341 Adding \fBfixedsize=true\fP forces these to be the actual size
wolffd@0 342 (text labels are ignored).
wolffd@0 343 .PP
wolffd@0 344 \fBshape=record polygon epsf \fIbuiltin_polygon\fR
wolffd@0 345 .br
wolffd@0 346 \fIbuiltin_polygon\fR is one of: \fBplaintext ellipse oval circle egg
wolffd@0 347 triangle box diamond trapezium parallelogram house hexagon octagon
wolffd@0 348 note tab box3d component.\fR
wolffd@0 349 (Polygons are defined or modified by the following node attributes:
wolffd@0 350 \fBregular\fR, \fBperipheries\fR, \fBsides\fR, \fBorientation\fR,
wolffd@0 351 \fBdistortion\fR and \fBskew\fR.) \fBepsf\fR uses the node's
wolffd@0 352 \fBshapefile\fR attribute as the path name of an external
wolffd@0 353 EPSF file to be automatically loaded for the node shape.
wolffd@0 354 .PP
wolffd@0 355 \fBlabel=\fItext\fR where \fItext\fP may include escaped newlines
wolffd@0 356 \\\|n, \\\|l, or \\\|r for center, left, and right justified lines.
wolffd@0 357 The string '\\N' value will be replaced by the node name.
wolffd@0 358 The string '\\G' value will be replaced by the graph name.
wolffd@0 359 Record labels may contain recursive box lists delimited by { | }.
wolffd@0 360 Port identifiers in labels are set off by angle brackets < >.
wolffd@0 361 In the graph file, use colon (such as, \fBnode0:port28\fR).
wolffd@0 362 .PP
wolffd@0 363 \fBfontsize=\fIn\fR sets the label type size to \fIn\fP points.
wolffd@0 364 .PP
wolffd@0 365 \fBfontname=\fIname\fR sets the label font family name.
wolffd@0 366 .PP
wolffd@0 367 \fBcolor=\fIcolorvalue\fR sets the outline color, and the default fill color
wolffd@0 368 if style=filled and \fBfillcolor\fR is not specified.
wolffd@0 369 .PP
wolffd@0 370 \fBfillcolor=\fIcolorvalue\fR sets the fill color
wolffd@0 371 when style=filled. If not specified, the fillcolor when style=filled defaults
wolffd@0 372 to be the same as the outline color.
wolffd@0 373 .PP
wolffd@0 374 \fBfontcolor=\fIcolorvalue\fR sets the label text color.
wolffd@0 375 .PP
wolffd@0 376 A \fIcolorvalue\fP may be "\fIh,s,v\fB"\fR (hue, saturation, brightness)
wolffd@0 377 floating point numbers between 0 and 1, or an X11 color name such as
wolffd@0 378 \fBwhite black red green blue yellow magenta cyan\fR or \fBburlywood\fR,
wolffd@0 379 or a "\fI#rrggbb" (red, green, blue, 2 hex characters each) value.
wolffd@0 380 .PP
wolffd@0 381 \fBstyle=filled solid dashed dotted bold invis\fP or any Postscript code.
wolffd@0 382 .PP
wolffd@0 383 \fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the node's active layers.
wolffd@0 384 The empty string means no layers (invisible).
wolffd@0 385 .PP
wolffd@0 386 The following attributes apply only to polygon shape nodes:
wolffd@0 387 .PP
wolffd@0 388 \fBregular=\fIn\fR if \fIn\fR is non\(hyzero then the polygon is made
wolffd@0 389 regular, i.e. symmetric about the x and y axis, otherwise the
wolffd@0 390 polygon takes on the aspect ratio of the label.
wolffd@0 391 \fIbuiltin_polygons\fR that are not already regular are made regular
wolffd@0 392 by this attribute.
wolffd@0 393 \fIbuiltin_polygons\fR that are already regular are not affected (i.e.
wolffd@0 394 they cannot be made asymmetric).
wolffd@0 395 .PP
wolffd@0 396 \fBperipheries=\fIn\fR sets the number of periphery lines drawn around
wolffd@0 397 the polygon. This value supersedes the number of periphery lines
wolffd@0 398 of \fIbuiltin_polygons\fR.
wolffd@0 399 .PP
wolffd@0 400 \fBsides=\fIn\fR sets the number of sides to the polygon. \fIn\fR<3
wolffd@0 401 results in an ellipse.
wolffd@0 402 This attribute is ignored by \fIbuiltin_polygons\fR.
wolffd@0 403 .PP
wolffd@0 404 \fBorientation=\fIf\fR sets the orientation of the first apex of the
wolffd@0 405 polygon counterclockwise from the vertical, in degrees.
wolffd@0 406 \fIf\fR may be a floating point number.
wolffd@0 407 The orientation of labels is not affected by this attribute.
wolffd@0 408 This attribute is added to the initial orientation of \fIbuiltin_polygons.\fR
wolffd@0 409 .PP
wolffd@0 410 \fBdistortion=\fIf\fR sets the amount of broadening of the top and
wolffd@0 411 narrowing of the bottom of the polygon (relative to its orientation).
wolffd@0 412 Floating point values between \-1 and +1 are suggested.
wolffd@0 413 This attribute is ignored by \fIbuiltin_polygons\fR.
wolffd@0 414 .PP
wolffd@0 415 \fBskew=\fIf\fR sets the amount of right\(hydisplacement of the top and
wolffd@0 416 left\(hydisplacement of the bottom of the polygon (relative to its
wolffd@0 417 orientation).
wolffd@0 418 Floating point values between \-1 and +1 are suggested.
wolffd@0 419 This attribute is ignored by \fIbuiltin_polygons\fR.
wolffd@0 420 .PP
wolffd@0 421 \fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG
wolffd@0 422 files.
wolffd@0 423 The substrings '\\N' and '\\G' are substituted in the same manner as
wolffd@0 424 for the node label attribute.
wolffd@0 425 Additionally the substring '\\L' is substituted with the node label string.
wolffd@0 426 .PP
wolffd@0 427 \fBURL=\fI"url"\fR ("URL" is a synonym for "href".)
wolffd@0 428 .PP
wolffd@0 429 \fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps
wolffd@0 430 and SVG, effective when nodes have a URL.
wolffd@0 431 The target string is used to determine which window of the browser is used
wolffd@0 432 for the URL. Setting it to "_graphviz" will open a new window if it doesn't
wolffd@0 433 already exist, or reuse it if it does.
wolffd@0 434 If the target string is empty, the default,
wolffd@0 435 then no target attribute is included in the output.
wolffd@0 436 The substrings '\\N' and '\\G' are substituted in the same manner as
wolffd@0 437 for the node label attribute.
wolffd@0 438 Additionally the substring '\\L' is substituted with the node label string.
wolffd@0 439 .PP
wolffd@0 440 \fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
wolffd@0 441 and SVG, effective when nodes have a URL. The tooltip string defaults to be the
wolffd@0 442 same as the label string, but this attribute permits nodes without
wolffd@0 443 labels to still have tooltips thus permitting denser graphs.
wolffd@0 444 The substrings '\\N' and '\\G' are substituted in the same manner as
wolffd@0 445 for the node label attribute.
wolffd@0 446 Additionally the substring '\\L' is substituted with the node label string.
wolffd@0 447
wolffd@0 448 .PP
wolffd@0 449 \fB(circo\(hyspecific attributes)\fR
wolffd@0 450 .br
wolffd@0 451 \fBroot=\fItrue/false\fR. This specifies that the block containing the given
wolffd@0 452 node be treated as the root of the spanning tree in the layout.
wolffd@0 453
wolffd@0 454 .PP
wolffd@0 455 \fB(fdp\(hyspecific attributes)\fR
wolffd@0 456 .br
wolffd@0 457 \fBpin=\fIval\fR. If \fIval\fR is "true", the node will remain at
wolffd@0 458 its initial position.
wolffd@0 459
wolffd@0 460 .SH "EDGE ATTRIBUTES"
wolffd@0 461 \fBminlen=\fIn\fR where \fIn\fP is an integer factor that applies
wolffd@0 462 to the edge length (ranks for normal edges, or minimum node separation
wolffd@0 463 for flat edges).
wolffd@0 464 .PP
wolffd@0 465 \fBweight=\fIn\fR where \fIn\fP is the integer cost of the edge.
wolffd@0 466 Values greater than 1 tend to shorten the edge. Weight 0 flat
wolffd@0 467 edges are ignored for ordering nodes.
wolffd@0 468 .PP
wolffd@0 469 \fBlabel=\fItext\fR where \fItext\fR may include escaped newlines
wolffd@0 470 \\\|n, \\\|l, or \\\|r for centered, left, or right justified lines.
wolffd@0 471 If the substring '\\T' is found in a label it will be replaced by the tail_node name.
wolffd@0 472 If the substring '\\H' is found in a label it will be replaced by the head_node name.
wolffd@0 473 If the substring '\\E' value is found in a label it will be replaced by: tail_node_name\->head_node_name
wolffd@0 474 If the substring '\\G' is found in a label it will be replaced by the graph name.
wolffd@0 475 or by: tail_node_name\-\-head_node_name for undirected graphs.
wolffd@0 476 .PP
wolffd@0 477 \fBfontsize=\fIn\fR sets the label type size to \fIn\fP points.
wolffd@0 478 .PP
wolffd@0 479 \fBfontname=\fIname\fR sets the label font family name.
wolffd@0 480 .PP
wolffd@0 481 \fBfontcolor=\fIcolorvalue\fR sets the label text color.
wolffd@0 482 .PP
wolffd@0 483 \fBstyle=solid dashed dotted bold invis\fP
wolffd@0 484 .PP
wolffd@0 485 \fBcolor=\fIcolorvalue\fR sets the line color for edges.
wolffd@0 486 .PP
wolffd@0 487 \fBcolor=\fIcolorvaluelist\fR a ':' separated list of \fIcolorvalue\fR creates
wolffd@0 488 parallel edges, one edge for each color.
wolffd@0 489 .PP
wolffd@0 490 \fBdir=forward back both none\fP controls arrow direction.
wolffd@0 491 .PP
wolffd@0 492 \fBtailclip,headclip=false\fP disables endpoint shape clipping.
wolffd@0 493 .PP
wolffd@0 494 \fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG
wolffd@0 495 files.
wolffd@0 496 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 497 for the edge label attribute.
wolffd@0 498 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 499 .PP
wolffd@0 500 \fBURL=\fI"url"\fR ("URL" is a synonym for "href".)
wolffd@0 501 .PP
wolffd@0 502 \fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps
wolffd@0 503 and SVG, effective when edges have a URL.
wolffd@0 504 If the target string is empty, the default,
wolffd@0 505 then no target attribute is included in the output.
wolffd@0 506 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 507 for the edge label attribute.
wolffd@0 508 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 509 .PP
wolffd@0 510 \fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
wolffd@0 511 effective when edges have a URL. The tooltip string defaults to be the
wolffd@0 512 same as the edge label string.
wolffd@0 513 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 514 for the edge label attribute.
wolffd@0 515 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 516 .PP
wolffd@0 517 \fBarrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot,
wolffd@0 518 tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow\fP.
wolffd@0 519 .PP
wolffd@0 520 \fBarrowsize\fP (norm_length=10,norm_width=5,
wolffd@0 521 inv_length=6,inv_width=7,dot_radius=2)
wolffd@0 522 .PP
wolffd@0 523 \fBheadlabel,taillabel=string\fP for port labels.
wolffd@0 524 \fBlabelfontcolor\fP,\fBlabelfontname\fP,\fBlabelfontsize\fP
wolffd@0 525 for head and tail labels.
wolffd@0 526 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 527 for the edge label attribute.
wolffd@0 528 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 529 .PP
wolffd@0 530 \fBheadhref=\fI"url"\fR sets the url for the head port in imagemap, PostScript and SVG files.
wolffd@0 531 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 532 for the edge label attribute.
wolffd@0 533 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 534 .PP
wolffd@0 535 \fBheadURL=\fI"url"\fR ("headURL" is a synonym for "headhref".)
wolffd@0 536 .PP
wolffd@0 537 \fBheadtarget=\fI"headtarget"\fR is a target string for client\(hyside imagemaps
wolffd@0 538 and SVG, effective when edge heads have a URL.
wolffd@0 539 The headtarget string is used to determine which window of the browser is used
wolffd@0 540 for the URL. If the headtarget string is empty, the default,
wolffd@0 541 then headtarget defaults to the same value as target for the edge.
wolffd@0 542 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 543 for the edge label attribute.
wolffd@0 544 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 545 .PP
wolffd@0 546 \fBheadtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
wolffd@0 547 effective when head ports have a URL. The tooltip string defaults to be the
wolffd@0 548 same as the headlabel string.
wolffd@0 549 The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as
wolffd@0 550 for the edge label attribute.
wolffd@0 551 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 552 .PP
wolffd@0 553 \fBtailhref=\fI"url"\fR sets the url for the tail port in imagemap, PostScript and SVG files.
wolffd@0 554 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 555 for the edge label attribute.
wolffd@0 556 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 557 .PP
wolffd@0 558 \fBtailURL=\fI"url"\fR ("tailURL" is a synonym for "tailhref".)
wolffd@0 559 .PP
wolffd@0 560 \fBtailtarget=\fI"tailtarget"\fR is a target string for client\(hyside imagemaps
wolffd@0 561 and SVG, effective when edge tails have a URL.
wolffd@0 562 The tailtarget string is used to determine which window of the browser is used
wolffd@0 563 for the URL. If the tailtarget string is empty, the default,
wolffd@0 564 then tailtarget defaults to the same value as target for the edge.
wolffd@0 565 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 566 for the edge label attribute.
wolffd@0 567 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 568 .PP
wolffd@0 569 \fBtailtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
wolffd@0 570 effective when tail ports have a URL. The tooltip string defaults to be the
wolffd@0 571 same as the taillabel string.
wolffd@0 572 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
wolffd@0 573 for the edge label attribute.
wolffd@0 574 Additionally the substring '\\L' is substituted with the edge label string.
wolffd@0 575 .PP
wolffd@0 576 \fBlabeldistance\fP and \fPport_label_distance\fP set distance; also
wolffd@0 577 \fBlabelangle\fP (in degrees CCW)
wolffd@0 578 .PP
wolffd@0 579 \fBdecorate\fP draws line from edge to label.
wolffd@0 580 .PP
wolffd@0 581 \fBsamehead,sametail\fP aim edges having the same value to the
wolffd@0 582 same port, using the average landing point.
wolffd@0 583 .PP
wolffd@0 584 \fBconstraint=false\fP causes an edge to be ignored for rank assignment.
wolffd@0 585 .PP
wolffd@0 586 \fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the edge's active layers.
wolffd@0 587 The empty string means no layers (invisible).
wolffd@0 588
wolffd@0 589 .PP
wolffd@0 590 \fB(neato\(hyspecific attributes)\fR
wolffd@0 591 .br
wolffd@0 592 \fBw=\fIf\fR sets the weight (spring constant) of an edge
wolffd@0 593 to the given floating point value. The default is 1.0;
wolffd@0 594 greater values make the edge tend more toward its optimal length.
wolffd@0 595 .PP
wolffd@0 596 \fBlen=\fIf\fR sets the optimal length of an edge.
wolffd@0 597 The default is 1.0.
wolffd@0 598 .PP
wolffd@0 599 \fB(fdp\(hyspecific attributes)\fR
wolffd@0 600 .br
wolffd@0 601 \fBweight=\fIf\fR sets the weight of an edge
wolffd@0 602 to the given floating point value. The default is 1.0;
wolffd@0 603 greater values make the edge tend more toward its optimal length.
wolffd@0 604 .SH "COMMAND LINE OPTIONS"
wolffd@0 605 \fB\-G\fP sets a default graph attribute.
wolffd@0 606 .br
wolffd@0 607 \fB\-N\fP sets a default node attribute.
wolffd@0 608 .br
wolffd@0 609 \fB\-E\fP sets a default edge attribute.
wolffd@0 610 Example: \fB\-Gsize="7,8" \-Nshape=box \-Efontsize=8\fR
wolffd@0 611 .PP
wolffd@0 612 \fB\-l\fIfile\fR loads custom PostScript library files.
wolffd@0 613 Usually these define custom shapes or styles.
wolffd@0 614 If \fB\-l\fP is given by itself, the standard library is omitted.
wolffd@0 615 .PP
wolffd@0 616 \fB\-T\fIlang\fR sets the output language as described above.
wolffd@0 617
wolffd@0 618 .PP
wolffd@0 619 \fB\-n\fR[\fB1\fR|\fB2\fR] (no\(hyop)
wolffd@0 620 If set, neato assumes nodes have already been positioned and all
wolffd@0 621 nodes have a pos attribute giving the positions.
wolffd@0 622 It then performs an optional adjustment to remove node\(hynode overlap,
wolffd@0 623 depending on the value of the overlap attribute,
wolffd@0 624 computes the edge layouts, depending on the value of the \fBsplines\fR attribute,
wolffd@0 625 and emits the graph in the appropriate format.
wolffd@0 626 If num is supplied, the following actions occur:
wolffd@0 627 .nf
wolffd@0 628 num = 1
wolffd@0 629 .fi
wolffd@0 630 Equivalent to \-n.
wolffd@0 631 .nf
wolffd@0 632 num > 1
wolffd@0 633 .fi
wolffd@0 634 Use node positions as specified,
wolffd@0 635 with no adjustment to remove node\(hynode overlaps,
wolffd@0 636 and use any edge layouts already specified by the pos attribute.
wolffd@0 637 neato computes an edge layout for any edge that does not have a pos attribute.
wolffd@0 638 As usual, edge layout is guided by the \fBsplines\fR attribute.
wolffd@0 639 .PP
wolffd@0 640 \fB\-K\fIlayout\fR override the default layout engine implied by the command name.
wolffd@0 641 .PP
wolffd@0 642 \fB\-O\fP automatically generate output filenames based on the input filename and the -T format.
wolffd@0 643 .PP
wolffd@0 644 \fB\-P\fP generate a graph of the currently available plugins.
wolffd@0 645 .PP
wolffd@0 646 \fB\-v\fP (verbose) prints various information useful for debugging.
wolffd@0 647 .PP
wolffd@0 648 \fB\-V\fP (version) prints version information and exits.
wolffd@0 649 .PP
wolffd@0 650 \fB\-?\fP prints the usage and exits.
wolffd@0 651 .SH "EXAMPLES"
wolffd@0 652 .nf
wolffd@0 653 digraph test123 {
wolffd@0 654 a \-> b \-> c;
wolffd@0 655 a \-> {x y};
wolffd@0 656 b [shape=box];
wolffd@0 657 c [label="hello\\\|nworld",color=blue,fontsize=24,
wolffd@0 658 fontname="Palatino\-Italic",fontcolor=red,style=filled];
wolffd@0 659 a \-> z [label="hi", weight=100];
wolffd@0 660 x \-> z [label="multi\-line\\\|nlabel"];
wolffd@0 661 edge [style=dashed,color=red];
wolffd@0 662 b \-> x;
wolffd@0 663 {rank=same; b x}
wolffd@0 664 }
wolffd@0 665 .fi
wolffd@0 666 .PP
wolffd@0 667 .nf
wolffd@0 668 graph test123 {
wolffd@0 669 a \-\- b \-\- c;
wolffd@0 670 a \-\- {x y};
wolffd@0 671 x \-\- c [w=10.0];
wolffd@0 672 x \-\- y [w=5.0,len=3];
wolffd@0 673 }
wolffd@0 674 .fi
wolffd@0 675 .SH "CAVEATS"
wolffd@0 676 Edge splines can overlap unintentionally.
wolffd@0 677 .PP
wolffd@0 678 Flat edge labels are slightly broken.
wolffd@0 679 Intercluster edge labels are totally broken.
wolffd@0 680 .PP
wolffd@0 681 Because unconstrained optimization is employed, node boxes can
wolffd@0 682 possibly overlap or touch unrelated edges. All existing
wolffd@0 683 spring embedders seem to have this limitation.
wolffd@0 684 .PP
wolffd@0 685 Apparently reasonable attempts to pin nodes or adjust edge lengths
wolffd@0 686 and weights can cause instability.
wolffd@0 687 .SH AUTHORS
wolffd@0 688 Stephen C. North <north@research.att.com>
wolffd@0 689 .br
wolffd@0 690 Emden R. Gansner <erg@research.att.com>
wolffd@0 691 .br
wolffd@0 692 John C. Ellson <ellson@research.att.com>
wolffd@0 693 .PP
wolffd@0 694 The bitmap driver (PNG, GIF etc) is by Thomas Boutell, <http://www.boutell.com/gd>
wolffd@0 695 .PP
wolffd@0 696 The Truetype font renderer is from
wolffd@0 697 the Freetype Project (David Turner, Robert Wilhelm, and Werner Lemberg)
wolffd@0 698 (who can be contacted at freetype\-devel@lists.lrz\-muenchen.de).
wolffd@0 699 .SH "SEE ALSO"
wolffd@0 700 This man page contains only a small amount of the information related
wolffd@0 701 to the Graphviz layout programs. The most complete information can be
wolffd@0 702 found at http://www.graphviz.org/Documentation.php, especially in the
wolffd@0 703 on\(hyline reference pages. Most of these documents are also available in the
wolffd@0 704 \fIdoc\fP and \fIdoc/info\fP subtrees in the source and binary distributions.
wolffd@0 705 .PP
wolffd@0 706 dotty(1)
wolffd@0 707 .br
wolffd@0 708 tcldot(n)
wolffd@0 709 .br
wolffd@0 710 xcolors(1)
wolffd@0 711 .br
wolffd@0 712 libgraph(3)
wolffd@0 713 .PP
wolffd@0 714 E. R. Gansner, S. C. North, K. P. Vo, "DAG \(hy A Program to Draw Directed Graphs", Software \(hy Practice and Experience 17(1), 1988, pp. 1047\(hy1062.
wolffd@0 715 .br
wolffd@0 716 E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp. 214\(hy230.
wolffd@0 717 .br
wolffd@0 718 S. North and E. Koutsofios, "Applications of graph visualization",
wolffd@0 719 Graphics Interface 94, pp. 234\(hy245.
wolffd@0 720 .br
wolffd@0 721 E. Koutsofios and S. C. North, "Drawing Graphs with dot,"
wolffd@0 722 Available on research.att.com in dist/drawdag/dotguide.ps.Z.
wolffd@0 723 .br
wolffd@0 724 S. C. North, "NEATO User's Manual".
wolffd@0 725 Available on research.att.com in dist/drawdag/neatodoc.ps.Z.