annotate toolboxes/graph_visualisation/share/graphviz/doc/Dot.ref @ 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 Quick Reference Guide for GraphViz
wolffd@0 2 20 February 2002
wolffd@0 3
wolffd@0 4
wolffd@0 5 Command-line Invocation
wolffd@0 6
wolffd@0 7 ------------------------------------------------------------------------
wolffd@0 8 All GraphViz programs have a similar invocation:
wolffd@0 9 cmd [ flags ] [ input files ]
wolffd@0 10 If no input files are supplied, the program reads from stdin.
wolffd@0 11
wolffd@0 12 Flags
wolffd@0 13
wolffd@0 14 -Gname=value
wolffd@0 15 Set a graph attribute.
wolffd@0 16 -Nname=value
wolffd@0 17 Set a default node attribute.
wolffd@0 18 -Ename=value
wolffd@0 19 Set a default edge attribute.
wolffd@0 20 -Tformat
wolffd@0 21 Set output language to one of the supported formats. By default,
wolffd@0 22 attributed dot is produced.
wolffd@0 23 -V
wolffd@0 24 Emit version information and exit.
wolffd@0 25 -llibfile
wolffd@0 26 User-supplied, device-dependent library files. Multiple libraries may
wolffd@0 27 be given. These names are passed to the code generator at the beginning
wolffd@0 28 of output.
wolffd@0 29 -n[num]
wolffd@0 30 Sets no-op flag in neato. If set, neato assumes nodes have already been
wolffd@0 31 positioned and have a pos attribute giving this position. It then just
wolffd@0 32 computes the edge layouts and emits the graph in the appropriate
wolffd@0 33 format. If num is supplied and > 1, neato checks for previously
wolffd@0 34 positioned edges, with control points provided in the pos attribute. It
wolffd@0 35 uses these if given; otherwise, it computes the edge layout.
wolffd@0 36 -ooutfile
wolffd@0 37 Write output to file outfile. By default, output goes to stdout.
wolffd@0 38 -s[scale]
wolffd@0 39 Set input scale to scale. If this value is omitted, 72.0 is used. This
wolffd@0 40 number is used to convert the point coordinate units used in the pos
wolffd@0 41 attribute into inches. For example, dot -Tdot produces pos values in
wolffd@0 42 points, with 72 per inch. Thus, to use this output as input to neato
wolffd@0 43 -n, one needs -s (equivalently, -s72).
wolffd@0 44 -v
wolffd@0 45 Verbose mode
wolffd@0 46 -x
wolffd@0 47 In neato, on input, prune isolated nodes and peninsulas. This removes
wolffd@0 48 uninteresting graph structure and produces a less cluttered drawing.
wolffd@0 49
wolffd@0 50 Note that the file contents override the -G, -N and -E flags. In addition,
wolffd@0 51 these flags cause the related attributes to be permanently attached to the
wolffd@0 52 graph. Thus, if attributed dot is used for output, the graph will have these
wolffd@0 53 attributes.
wolffd@0 54
wolffd@0 55 ------------------------------------------------------------------------
wolffd@0 56
wolffd@0 57 The DOT Language
wolffd@0 58
wolffd@0 59 ------------------------------------------------------------------------
wolffd@0 60 digraph G {foo -> bar; ... } or graph G { foo -- bar; ...}
wolffd@0 61
wolffd@0 62 To connect all pairs:
wolffd@0 63 {foo bar}->{baz bart}
wolffd@0 64
wolffd@0 65 To make a chain of links:
wolffd@0 66 foo->bar->baz
wolffd@0 67
wolffd@0 68 Commas inside [...] and semicolons inside {...} are optional.
wolffd@0 69
wolffd@0 70 Quotes are needed on attribute values to protect spaces, commas, periods, etc.
wolffd@0 71
wolffd@0 72 // C++ like comment: to end of line
wolffd@0 73 /* C-like comment: between delimiters */
wolffd@0 74
wolffd@0 75 For a complete language description, see
wolffd@0 76
wolffd@0 77 http://www.research.att.com/~erg/graphviz/info/lang.html
wolffd@0 78
wolffd@0 79 ------------------------------------------------------------------------
wolffd@0 80
wolffd@0 81 Attributes
wolffd@0 82
wolffd@0 83 ------------------------------------------------------------------------
wolffd@0 84
wolffd@0 85 Name Used By Type Default Minimum Notes
wolffd@0 86 Damping G double 0.99 0.0 neato only
wolffd@0 87 Epsilon G double (.0001 * # nodes) neato only
wolffd@0 88 URL ENGC string
wolffd@0 89 arrowhead E arrowType normal
wolffd@0 90 arrowsize E double 1.0 0.0
wolffd@0 91 arrowtail E arrowType normal
wolffd@0 92 bb G rect write-only
wolffd@0 93 bgcolor G color
wolffd@0 94 bottomlabel N string ""
wolffd@0 95 center G bool false
wolffd@0 96 clusterrank G clusterMode local dot only
wolffd@0 97 color ENC color black
wolffd@0 98 comment ENG string ""
wolffd@0 99 compound G bool false dot only
wolffd@0 100 concentrate G bool false dot only
wolffd@0 101 constraint E bool true dot only
wolffd@0 102 decorate E bool false
wolffd@0 103
wolffd@0 104 dir E dirType forward(directed)
wolffd@0 105 none(undirected)
wolffd@0 106 distortion N double 0.0 -100.0
wolffd@0 107
wolffd@0 108 fillcolor NC color lightgrey(nodes)
wolffd@0 109 black(clusters)
wolffd@0 110 fixedsize N bool false
wolffd@0 111 fontcolor ENGC color black
wolffd@0 112 fontname ENGC string "Times-Roman"
wolffd@0 113 fontpath G string ""
wolffd@0 114 fontsize ENGC double 14.0 1.0
wolffd@0 115 group N string "" dot only
wolffd@0 116 headURL E string ""
wolffd@0 117 headlabel E string ""
wolffd@0 118 headport E portPos center
wolffd@0 119 height N double 0.5 0.02
wolffd@0 120 K G double 1.0 0.0 sfdp only
wolffd@0 121
wolffd@0 122 label ENGC string ""
wolffd@0 123 "\N" (nodes)
wolffd@0 124 labelangle E double -25.0 -180.0
wolffd@0 125 labeldistance E double 1.0 0.0
wolffd@0 126 labelfloat E bool false
wolffd@0 127 labelfontcolor E color black
wolffd@0 128 labelfontname E string "Times-Roman"
wolffd@0 129 labelfontsize E double 11.0 1.0
wolffd@0 130 labeljust C string "" dot only
wolffd@0 131
wolffd@0 132 labelloc GC string "t"(clusters) dot only
wolffd@0 133 "b"(root graphs)
wolffd@0 134 layer EN layerRange ""
wolffd@0 135 layers G layerList ""
wolffd@0 136 len E double 1.0 neato only
wolffd@0 137 levels G int MAXINT 0 sfdp only
wolffd@0 138 lhead E string "" dot only
wolffd@0 139 lp EGC point write-only
wolffd@0 140 ltail E string "" dot only
wolffd@0 141
wolffd@0 142 margin G double
wolffd@0 143 pointf
wolffd@0 144 maxiter G int MAXINT neato only
wolffd@0 145 mclimit G double 1.0 dot only
wolffd@0 146 minlen E int 1 0 dot only
wolffd@0 147 model G string "" neato only
wolffd@0 148 nodesep G double 0.25 0.02 dot only
wolffd@0 149 normalize G bool false neato only
wolffd@0 150 nslimit
wolffd@0 151 nslimit1 G double dot only
wolffd@0 152 ordering G string "" dot only
wolffd@0 153 orientation N double 0.0 360.0
wolffd@0 154 orientation G string ""
wolffd@0 155
wolffd@0 156 overlap G string "" neato/sfdp only
wolffd@0 157 bool
wolffd@0 158 page G pointf
wolffd@0 159 pagedir G pagedir BL
wolffd@0 160 peripheries N int 0
wolffd@0 161 pin N bool neato only
wolffd@0 162
wolffd@0 163 pos EN point
wolffd@0 164 splineType
wolffd@0 165 quadtree G string "" sfdp only
wolffd@0 166 quantum G double 0.0 0.0
wolffd@0 167 rank S rankType dot only
wolffd@0 168 rankdir G rankdir TB dot only
wolffd@0 169 ranksep G double 0.5 0.02
wolffd@0 170 ratio G double
wolffd@0 171 rects N rect write-only
wolffd@0 172 regular N bool false
wolffd@0 173 remincross G bool false dot only
wolffd@0 174 repulsiveforce G double 1 0.0 sfdp only
wolffd@0 175 rotate G int 0
wolffd@0 176 samehead E string "" dot only
wolffd@0 177 sametail E string "" dot only
wolffd@0 178 samplepoints G int 8
wolffd@0 179 searchsize G int 30 dot only
wolffd@0 180 sep G double 0.01 neato only
wolffd@0 181 shape N shape ellipse
wolffd@0 182 shapefile N string ""
wolffd@0 183 showboxes ENG int 0 0 dot only
wolffd@0 184 sides N int 4 0
wolffd@0 185 size G pointf
wolffd@0 186 skew N double 0.0 -100.0
wolffd@0 187 smoothing G string "" sfdp only
wolffd@0 188 splines G bool false neato only
wolffd@0 189
wolffd@0 190 start G string "" neato only
wolffd@0 191 int
wolffd@0 192 style ENC style
wolffd@0 193 styleheet G style
wolffd@0 194 tailURL E string ""
wolffd@0 195 taillabel E string ""
wolffd@0 196 tailport E portPos center
wolffd@0 197 toplabel N string ""
wolffd@0 198 vertices N pointfList write-only
wolffd@0 199 voro_margin G double 0.05 0.0 neato only
wolffd@0 200 w E double 1.0 neato only
wolffd@0 201
wolffd@0 202 weight E double 1.0 0(dot)
wolffd@0 203 1(neato)
wolffd@0 204 width N double 0.75 0.01
wolffd@0 205
wolffd@0 206 z N double 0.0 -MAXFLOAT
wolffd@0 207 -1000
wolffd@0 208 ------------------------------------------------------
wolffd@0 209 For the bool type, TRUE values are represented by "true" (case-insensitive)
wolffd@0 210 and any non-zero integer, and FALSE values by "false" (case-insensitive) and
wolffd@0 211 zero.
wolffd@0 212
wolffd@0 213 In the Used By field, the characters E, N, G and C represent edges, nodes,
wolffd@0 214 the root graph and cluster subgraphs, respectively. This field indicates
wolffd@0 215 which graph component uses the attribute.
wolffd@0 216 ------------------------------------------------------------------------
wolffd@0 217
wolffd@0 218 Attribute Descriptions
wolffd@0 219
wolffd@0 220 Damping
wolffd@0 221 Factor damping force motions. On each iteration, a nodes movement is
wolffd@0 222 limited to this factor of its potential motion. By being less than 1.0,
wolffd@0 223 the system tends to ``cool'', thereby preventing cycling.
wolffd@0 224 Epsilon
wolffd@0 225 Terminating condition. If the length squared of all energy gradients
wolffd@0 226 are < Epsilon, the algorithm stops.
wolffd@0 227 URL
wolffd@0 228 Incorporated into device-dependent output. At present, used for ps2,
wolffd@0 229 i*map and svg. For ps2, URLs can be attached to nodes and the root
wolffd@0 230 graph. When distilled to PDF, such nodes are active links and the graph
wolffd@0 231 URL can be used as a base URL. For i*map, URLs can be attached to
wolffd@0 232 nodes, edges and the root graph. If the node or edge URL contains "\N",
wolffd@0 233 this is replaced by the object's name. For svg, URLs can be attached to
wolffd@0 234 nodes, edges and clusters, with "\N" replacement done for all three.
wolffd@0 235 arrowhead
wolffd@0 236 Style of arrowhead on head of edge.
wolffd@0 237 arrowsize
wolffd@0 238 Multiplicative scale factor for arrowheads.
wolffd@0 239 arrowtail
wolffd@0 240 Style of arrowhead on tail of edge.
wolffd@0 241 bb
wolffd@0 242 Bounding box of drawing in integer points.
wolffd@0 243 bgcolor
wolffd@0 244 Color used as background for canvas, plus initial fill color.
wolffd@0 245 bottomlabel
wolffd@0 246 Additional label near bottom of nodes of shape M*.
wolffd@0 247 center
wolffd@0 248 If true, the drawing is centered in the output canvas.
wolffd@0 249 clusterrank
wolffd@0 250 Mode used for handling clusters. If clusterrank is "local", a subgraph
wolffd@0 251 whose name begins with "cluster" is given special treatment. The
wolffd@0 252 subgraph is laid out separately, and then integrated as a unit into its
wolffd@0 253 parent graph, with a bounding rectangle drawn about it. If the cluster
wolffd@0 254 has a label parameter, this label is displayed within the rectangle.
wolffd@0 255 Note also that there can be clusters within clusters. At present, the
wolffd@0 256 modes "global" and "none" appear to be identical, both turning off the
wolffd@0 257 special cluster processing.
wolffd@0 258 color
wolffd@0 259 Basic drawing color for graphics.
wolffd@0 260 comment
wolffd@0 261 Comments are inserted into output. Device-dependent
wolffd@0 262 compound
wolffd@0 263 If true, allow edges between clusters. (See lhead and ltail below.)
wolffd@0 264 concentrate
wolffd@0 265 If true, use edge concentrators.
wolffd@0 266 constraint
wolffd@0 267 If false, the edge is not used in ranking the nodes. For example, in
wolffd@0 268 the graph
wolffd@0 269
wolffd@0 270 digraph G {
wolffd@0 271 a -> c;
wolffd@0 272 a -> b;
wolffd@0 273 b -> c [constraint=false];
wolffd@0 274 }
wolffd@0 275
wolffd@0 276
wolffd@0 277 the edge b -> c does not add a constraint during rank assignment, so
wolffd@0 278 the only constraints are that a be above b and c.
wolffd@0 279
wolffd@0 280 decorate
wolffd@0 281 If true, attach edge label to edge by a 2-segment polyline, underlining
wolffd@0 282 the label, then going to the closest point of spline.
wolffd@0 283 dir
wolffd@0 284 Set edge type for drawing arrowheads.
wolffd@0 285 distortion
wolffd@0 286 Distortion factor for shape=polygon. Positive values cause top part to
wolffd@0 287 be larger than bottom; negative values do the opposite.
wolffd@0 288 fillcolor
wolffd@0 289 If fillcolor is not defined, color is used. If this is not defined, the
wolffd@0 290 default is used, except for shape=point or when the output format is
wolffd@0 291 MIF, which use black by default.
wolffd@0 292 fixedsize
wolffd@0 293 If true, the node size is kept fixed and not expanded to contain the
wolffd@0 294 text label.
wolffd@0 295 fontcolor
wolffd@0 296 Color used for text.
wolffd@0 297 fontname
wolffd@0 298 Font used for text.
wolffd@0 299 fontpath
wolffd@0 300 Directory list used by libgd to search for bitmap fonts. If fontpath is
wolffd@0 301 not set, the environment variable DOTFONTPATH is checked. If that is
wolffd@0 302 not set, GDFONTPATH is checked. If not set, libgd uses its compiled-in
wolffd@0 303 font path.
wolffd@0 304 fontsize
wolffd@0 305 Font size, in points, used for text.
wolffd@0 306 group
wolffd@0 307 If the end points of an edge belong to the same group, i.e., have the
wolffd@0 308 same group attribute, parameters are set to avoid crossings and keep
wolffd@0 309 the edges straight.
wolffd@0 310 headURL
wolffd@0 311 For the output format imap, or cmap, if headURL is defined, it is
wolffd@0 312 output as part of the head label of the edge. If headURL contains
wolffd@0 313 "\N", this will be replaced by the head label text.
wolffd@0 314 headlabel
wolffd@0 315 Text label to be placed near head of edge.
wolffd@0 316 headport
wolffd@0 317 Indicates where on the head node to attach the head of the edge. In the
wolffd@0 318 default case, the edge is aimed towards the center of the node, and
wolffd@0 319 then clipped at the node boundary.
wolffd@0 320 height
wolffd@0 321 Height of node, in inches.
wolffd@0 322 K constant used in the Fruchterman-Reingold force directed model.
wolffd@0 323 label
wolffd@0 324 Text label attached to objects. The escape sequences "\n", "\l" and
wolffd@0 325 "\r" divide the label into lines, centered, left-justified and
wolffd@0 326 right-justified, respectively. The escape sequence "\N" represents a
wolffd@0 327 node's name. If a node's shape is record, then the label can have a
wolffd@0 328 special format which describes the record layout.
wolffd@0 329 labelangle
wolffd@0 330 Angle, in degrees, that the headlabel(taillabel) is rotated from the
wolffd@0 331 angle the edge makes incident with the head(tail) node, respectively.
wolffd@0 332 labeldistance
wolffd@0 333 Multiplicative scaling factor adjusting the distance that the
wolffd@0 334 headlabel(taillabel) is the from head(tail) node.
wolffd@0 335 labelfloat
wolffd@0 336 If true, allows edge labels to be less constrained in position. In
wolffd@0 337 particular, it may appear on top of other edges.
wolffd@0 338 labelfontcolor
wolffd@0 339 Color used for headlabel and taillabel.
wolffd@0 340 labelfontname
wolffd@0 341 Font used for headlabel and taillabel.
wolffd@0 342 labelfontsize
wolffd@0 343 Font size, in points, used for headlabel and taillabel.
wolffd@0 344 labeljust
wolffd@0 345 Justification for cluster labels. If "r", the label is right-justified
wolffd@0 346 within bounding rectangle; otherwise, left-justified.
wolffd@0 347 labelloc
wolffd@0 348 Top/bottom placement of graph and cluster labels. If the attribute is
wolffd@0 349 "t", place label at the top; if the attribute is "b", place label at
wolffd@0 350 the bottom. By default, root graph labels go on the bottom and cluster
wolffd@0 351 labels go on the top.
wolffd@0 352 layer
wolffd@0 353 Specifies layers in which the node or edge is present.
wolffd@0 354 layers
wolffd@0 355 Specifies a linearly ordered list of layer names attached to the graph
wolffd@0 356 The graph is then output in separate layers. Only those components
wolffd@0 357 belonging to the current output layer appear. For more information, see
wolffd@0 358 the page How to use drawing layers (overlays).
wolffd@0 359 len
wolffd@0 360 Preferred edge length, in inches.
wolffd@0 361 levels
wolffd@0 362 Number of levels allowed in the multilevel scheme. Default is MAXINT.
wolffd@0 363 lhead
wolffd@0 364 Logical head of an edge. When compound is true, if lhead is defined and
wolffd@0 365 is the name of a cluster containing the real head, the edge is clipped
wolffd@0 366 to the boundary of the cluster.
wolffd@0 367 lp
wolffd@0 368 Label position, in points.
wolffd@0 369 ltail
wolffd@0 370 Logical tail of an edge. When compound is true, if ltail is defined and
wolffd@0 371 is the name of a cluster containing the real tail, the edge is clipped
wolffd@0 372 to the boundary of the cluster.
wolffd@0 373 margin
wolffd@0 374 Set x and y margins of canvas, in inches. In first case, both margins
wolffd@0 375 are set equal to the given value.
wolffd@0 376 maxiter
wolffd@0 377 Sets the number of iterations used.
wolffd@0 378 mclimit
wolffd@0 379 Multiplicative scale factor used to alter the MinQuit (default = 8) and
wolffd@0 380 MaxIter (default = 24) parameters used during crossing minimization.
wolffd@0 381 These correspond to the number of tries without improvement before
wolffd@0 382 quitting and the maximum number of iterations in each pass.
wolffd@0 383 minlen
wolffd@0 384 Minimum edge length (rank difference between head and tail).
wolffd@0 385 model
wolffd@0 386 If "circuit", use circuit resistance model to compute dissimilarity
wolffd@0 387 values; otherwise, use shortest path model.
wolffd@0 388 nodesep
wolffd@0 389 Minimum space between two adjacent nodes in the same rank, in inches.
wolffd@0 390 normalize
wolffd@0 391 If set, normalize coordinates of final layout so that the first point
wolffd@0 392 is at the origin, and then rotate the layout so that the first edge is
wolffd@0 393 horizontal.
wolffd@0 394 nslimit ,
wolffd@0 395 nslimit1
wolffd@0 396 Used to set number of iterations in network simplex applications.
wolffd@0 397 nslimit is used in computing node x coordinates, nslimit1 for ranking
wolffd@0 398 nodes. If defined, # iterations = nslimit(1) * # nodes; otherwise, #
wolffd@0 399 iterations = MAXINT.
wolffd@0 400 ordering
wolffd@0 401 If "out" for a graph G, and n is a node in G, then edges n->* appear
wolffd@0 402 left-to-right in the same order in which they are defined.
wolffd@0 403 orientation
wolffd@0 404 Angle, in degrees, used to rotate node shapes.
wolffd@0 405 orientation
wolffd@0 406 If "[lL]*", set graph orientation to landscape Used only if rotate is
wolffd@0 407 not defined.
wolffd@0 408 overlap
wolffd@0 409 If "scale", remove node overlaps by scaling; if converts to false,
wolffd@0 410 remove node overlaps by the Voronoi technique; otherwise, leave
wolffd@0 411 overlaps.
wolffd@0 412 page
wolffd@0 413 Width and height of output pages, in inches. If this is set and is
wolffd@0 414 smaller than the size of the layout, a rectangular array of pages of
wolffd@0 415 the specified page size is overlaid on the layout, with origins aligned
wolffd@0 416 in the lower-left corner, thereby partitioning the layout into pages.
wolffd@0 417 The pages are then produced one at a time, in pagedir order.
wolffd@0 418 pagedir
wolffd@0 419 If the page attribute is set and applicable, this attribute specifies
wolffd@0 420 the order in which the pages are emitted. This is limited to one of the
wolffd@0 421 8 row or column major orders.
wolffd@0 422 peripheries
wolffd@0 423 Set number of peripheries used in polygonal shapes.
wolffd@0 424 pin
wolffd@0 425 If true and the node has a pos attribute on input, neato prevents the
wolffd@0 426 node from moving from the input position. This property can also be
wolffd@0 427 specified in the pos attribute itself (cf. the point type).
wolffd@0 428 pos
wolffd@0 429 Position of node, or spline control points, in points. In neato, pos
wolffd@0 430 can be used to set initial position of a node. Concerning this, see the
wolffd@0 431 -s command line flag.
wolffd@0 432 quantum
wolffd@0 433 If quantum > 0.0, node label dimensions will be rounded to integral
wolffd@0 434 multiples of the quantum.
wolffd@0 435 quadtree
wolffd@0 436 Quadtree scheme to use. Values are "normal" (default), "fast" or "none".
wolffd@0 437 "fast" gives about 2-4 overall speedup compared with "normal", though
wolffd@0 438 layout quality can suffer a little.
wolffd@0 439 rank
wolffd@0 440 Rank constraints on the nodes in a subgraph. If rank="same", all nodes
wolffd@0 441 are placed on the same rank. If rank="min", all nodes are placed on the
wolffd@0 442 minimum rank. If rank="source", all nodes are placed on the minimum
wolffd@0 443 rank, and the only nodes on the minimum rank belong to some subgraph
wolffd@0 444 whose rank attribute is "source" or "min". Analogous criteria hold for
wolffd@0 445 rank="max" and rank="sink". (Note: the minimum rank is topmost or
wolffd@0 446 leftmost, and the maximum rank is bottommost or rightmost.)
wolffd@0 447 rankdir
wolffd@0 448 Sets direction of graph layout. If rankdir="LR", the graph is laid out
wolffd@0 449 from left to right, i.e., directed edges tend to go from left to right.
wolffd@0 450 By default, graphs are laid out from top to bottom.
wolffd@0 451 ranksep
wolffd@0 452 In dot, this the gives desired rank separation, in inches. This is the
wolffd@0 453 minimum vertical distance between the bottom of the nodes in one rank
wolffd@0 454 and the tops of nodes in the next. If the value contains "equally", the
wolffd@0 455 centers of all ranks are spaced equally apart. Note that both settings
wolffd@0 456 are possible, e.g., ranksep = "1.2 equally". In twopi, specifies radial
wolffd@0 457 separation of ranks.
wolffd@0 458 ratio
wolffd@0 459 Sets the aspect ratio (drawing height/drawing width) for the drawing.
wolffd@0 460 Note that this is adjusted before the size attribute constraints are
wolffd@0 461 enforced.
wolffd@0 462
wolffd@0 463 If ratio is numeric, it is taken as the desired aspect ratio. Then, if
wolffd@0 464 the actual aspect ratio is less than the desired ratio, the drawing
wolffd@0 465 height is scaled up to achieve the desired ratio; if the actual ratio
wolffd@0 466 is greater than that desired ratio, the drawing width is scaled up.
wolffd@0 467
wolffd@0 468 If ratio = "fill" and the size attribute is set, the drawing is scaled
wolffd@0 469 to achieve the aspect ratio implied by size. As size is set, when the
wolffd@0 470 drawing is later scaled to fit that rectangle, the resulting picture
wolffd@0 471 will fill the rectangle.
wolffd@0 472
wolffd@0 473 If ratio = "compress" and the size attribute is set, dot attempts to
wolffd@0 474 compress the initial layout to fit in the given size. This achieves a
wolffd@0 475 tighter packing of nodes but reduces the balance and symmetry.
wolffd@0 476
wolffd@0 477 If ratio = "auto", the page attribute is set and the graph cannot be
wolffd@0 478 drawn on a single page, then size is set to an ``ideal'' value. In
wolffd@0 479 particular, the size in a given dimension will be the smallest integral
wolffd@0 480 multiple of the page size in that dimension which is at least half the
wolffd@0 481 current size. The two dimensions are then scaled independently to the
wolffd@0 482 new size.
wolffd@0 483 rects
wolffd@0 484 Rectangles for fields of records, in points.
wolffd@0 485 regular
wolffd@0 486 If true, force polygon to be regular.
wolffd@0 487 repulsiveforce
wolffd@0 488 The power of repulsive force used in an extended Fruchterman-Reingold
wolffd@0 489 force directed model. Default is 1. Values larger than 1 tend to reduce
wolffd@0 490 the warping effect at the expensive of less clustering.
wolffd@0 491 remincross
wolffd@0 492 If true and there are multiple clusters, run cross minimization a
wolffd@0 493 second time.
wolffd@0 494 rotate
wolffd@0 495 If 90, set drawing orientation to landscape.
wolffd@0 496 samehead
wolffd@0 497 Edges with the same head and the same samehead value are aimed at the
wolffd@0 498 same point on the head.
wolffd@0 499 sametail
wolffd@0 500 Edges with the same tail and the same sametail value are aimed at the
wolffd@0 501 same point on the tail.
wolffd@0 502 samplepoints
wolffd@0 503 If the input graph defines the vertices attribute, and output is plain*
wolffd@0 504 or attributed dot, this give the number of points used to represent
wolffd@0 505 circles and ellipses. It plays the same role in neato, when adjusting
wolffd@0 506 the layout to avoid overlapping nodes.
wolffd@0 507 searchsize
wolffd@0 508 During network simplex, maximum number of edges with negative cut
wolffd@0 509 values to search when looking for one with minimum cut value.
wolffd@0 510 sep
wolffd@0 511 Fraction to increase polygons (multiply coordinates by 1 + sep) for
wolffd@0 512 purposes of determining overlap. Guarantees a minimal non-zero distance
wolffd@0 513 between nodes.
wolffd@0 514 shape
wolffd@0 515 Set shape of node.
wolffd@0 516 shapefile
wolffd@0 517 For output format is ps* or svg*, if non-empty, taken as a filename
wolffd@0 518 containing a device-dependent description of a node's shape.
wolffd@0 519 showboxes
wolffd@0 520 Print guide boxes in PostScript at the beginning of routesplines if 1,
wolffd@0 521 or at the end if 2. (Debugging)
wolffd@0 522 sides
wolffd@0 523 Number of sides if shape=polygon.
wolffd@0 524 size
wolffd@0 525 Maximum width and height of drawing, inches. If defined and the drawing
wolffd@0 526 is too large, the drawing is uniformly scaled down so that it fits
wolffd@0 527 within the given size. Note that there is some interaction between the
wolffd@0 528 size and ratio attributes.
wolffd@0 529 skew
wolffd@0 530 Skew factor for shape=polygon. Positive values skew top of polygon to
wolffd@0 531 right; negative to left.
wolffd@0 532 smoothing
wolffd@0 533 A post processing step to smooth out uneven distribution of nodes. Possible
wolffd@0 534 values are "none" (default), "avg_dist", "graph_dist", "power_dist", "rng",
wolffd@0 535 "spring" and "triangle".
wolffd@0 536 splines
wolffd@0 537 If true, draw edges as splines. This requires non-overlapping nodes
wolffd@0 538 (cf. overlap).
wolffd@0 539 start
wolffd@0 540 Parameter used to determine the initial layout of nodes. By default,
wolffd@0 541 nodes are randomly placed in a square whose sides have length (#
wolffd@0 542 nodes). The same seed is always used for the random number generator,
wolffd@0 543 so the initial placement is repeatable. If start converts to an
wolffd@0 544 integer, this is used as a seed value for the random number generator.
wolffd@0 545 If start is "regular", the nodes are placed regularly about a circle.
wolffd@0 546 Finally, if start is defined but is not one of the above cases, the
wolffd@0 547 current time is used to pick a seed.
wolffd@0 548 style
wolffd@0 549 Set style for node or edge. For cluster subgraph, if "filled", the
wolffd@0 550 cluster box's background is filled.
wolffd@0 551 stylesheet
wolffd@0 552 The URL of a CSS stylesheet to be referenced from the output file.
wolffd@0 553 Relevant only for SVG output.
wolffd@0 554 tailURL
wolffd@0 555 When the output format is imap, or cmap, if tailURL is defined, it is
wolffd@0 556 output as part of the tail label of the edge. If tailURL
wolffd@0 557 contains "\N", this will be replaced by the tail label text.
wolffd@0 558 taillabel
wolffd@0 559 Text label to be placed near tail of edge.
wolffd@0 560 tailport
wolffd@0 561 Indicates where on the tail node to attach the tail of the edge.
wolffd@0 562 toplabel
wolffd@0 563 Additional label near top of nodes of shape M*.
wolffd@0 564 vertices
wolffd@0 565 If the input graph defines this attribute, the node is polynomial, and
wolffd@0 566 output is plain* or attributed dot, this attribute provides the
wolffd@0 567 coordinates of the vertices of the node's polynomial, in points. If the
wolffd@0 568 node is an ellipse or circle, the samplepoints attribute affects the
wolffd@0 569 output.
wolffd@0 570 voro_margin
wolffd@0 571 Factor to scale up drawing to allow margin for expansion in Voronoi
wolffd@0 572 technique. dim' = (1+2*margin)*dim.
wolffd@0 573 w
wolffd@0 574 Redundant definition of weight in neato, cf. bug 9.
wolffd@0 575 weight
wolffd@0 576 Weight of edge. Usually, the heavier the weight, the shorter (and, in
wolffd@0 577 dot, straighter and more vertical) an edge is.
wolffd@0 578 width
wolffd@0 579 Width of node, in inches.
wolffd@0 580 z
wolffd@0 581 Provides z coordinate for the node when output format is VRML.
wolffd@0 582
wolffd@0 583 ------------------------------------------------------------------------
wolffd@0 584
wolffd@0 585 Attribute Type Descriptions
wolffd@0 586
wolffd@0 587 arrowType
wolffd@0 588 "normal" "inv"
wolffd@0 589
wolffd@0 590 "dot" "invdot"
wolffd@0 591
wolffd@0 592 "odot" "invodot"
wolffd@0 593
wolffd@0 594 "none"
wolffd@0 595 clusterMode
wolffd@0 596 "local","global","none"
wolffd@0 597 color
wolffd@0 598 "#%2x%2x%2x" RGB
wolffd@0 599 "#%2x%2x%2x%2x"RGBA
wolffd@0 600 "%lf,%lf,%lf" HSV 0.0 <= values <= 1.0
wolffd@0 601 string color name
wolffd@0 602 dirType
wolffd@0 603 For an edge T -> H;
wolffd@0 604
wolffd@0 605 "forward" "back"
wolffd@0 606
wolffd@0 607 "both" "none"
wolffd@0 608
wolffd@0 609 For undirected edges T -- H;, one of the nodes, usually the righthand
wolffd@0 610 one, is treated as the head for the purpose of interpreting "forward"
wolffd@0 611 and "back".
wolffd@0 612 layerList
wolffd@0 613 list of strings separated by colons, tabs or spaces, defining layer
wolffd@0 614 names and implicitly numbered 1,2,...
wolffd@0 615 layerRange
wolffd@0 616 layerId or layerId[:\t ]layerId,
wolffd@0 617 where layerId = "all", decimal integer or layer name. (An integer i
wolffd@0 618 corresponds to layer i.)
wolffd@0 619 pagedir
wolffd@0 620 "BL", "BR", "TL", "TR", "RB", "RT", "LB", "LT". These specify the 8 row
wolffd@0 621 or column major orders for traversing a rectangular array, the first
wolffd@0 622 character corresponding to the major order and the second to the minor
wolffd@0 623 order. Thus, for "BL", the major order is from bottom to top, and the
wolffd@0 624 minor order is from left to right. This means the bottom row is
wolffd@0 625 traversed first, from left to right, then the next row up, from left to
wolffd@0 626 right, and so on, until the topmost row is traversed.
wolffd@0 627 point
wolffd@0 628 "%d,%d"('!') representing the point (x,y). The optional '!' indicates
wolffd@0 629 the node position should not change (input-only).
wolffd@0 630 pointf
wolffd@0 631 "%lf,%lf" representing the point (x,y).
wolffd@0 632 pointfList
wolffd@0 633 list of pointf, separated by spaces.
wolffd@0 634 portPos
wolffd@0 635 "n","ne","e","se","s","sw","w","nw" These correspond to the obvious
wolffd@0 636 compass points on the node.
wolffd@0 637 rankType
wolffd@0 638 "same", "min", "source", "max", "sink"
wolffd@0 639 rankdir
wolffd@0 640 "LR". Any other value corresponds to a top-down layout.
wolffd@0 641 rect
wolffd@0 642 "%d,%d,%d,%d" The rect llx,lly,urx,ury gives the coordinates, in
wolffd@0 643 points, of the lower-left corner (llx,lly) and the upper-right corner
wolffd@0 644 (urx,ury).
wolffd@0 645 shape
wolffd@0 646 A string specifying the shape of a node. There are three main types of
wolffd@0 647 shapes : polygon-based, record-based and PostScript-based.
wolffd@0 648 splineType
wolffd@0 649 spline ( ';' spline )*
wolffd@0 650 where spline= (endp)? (startp)? point (triple)]*
wolffd@0 651 and triple = point point point
wolffd@0 652 and endp = "e,%d,%d"
wolffd@0 653 and startp = "s,%d,%d"
wolffd@0 654 If a spline has points p1 p2 p3 ... pn, (n = 1 (mod 3)), the points
wolffd@0 655 correspond to the control points of a B-spline from p1 to pn. If startp
wolffd@0 656 is given, it touches one node of the edge, and the arrowhead goes from
wolffd@0 657 p1 to startp. If startp is not given, p1 touches a node. Similarly for
wolffd@0 658 pn and endp.
wolffd@0 659 style
wolffd@0 660 styleItem ( ',' styleItem )*
wolffd@0 661 where styleItem= name or name'('args')'
wolffd@0 662 and args = name ( ',' name )*
wolffd@0 663 and name = [^)(, ][^)(,]*
wolffd@0 664 At present, the recognized style names comprise "dashed", "dotted",
wolffd@0 665 "solid", "invis" and "bold" for nodes and edges, and "filled",
wolffd@0 666 "diagonals" and "rounded" for nodes only. Additional styles are
wolffd@0 667 available in device-dependent form. Style lists are passed to device
wolffd@0 668 drivers, which can use this to generate appropriate output.
wolffd@0 669
wolffd@0 670 Note that, at present, "rounded" cancels "filled", except for circles
wolffd@0 671 and ellipses. This holds for the Mrecord shape, which is rounded by
wolffd@0 672 definition.
wolffd@0 673
wolffd@0 674 ------------------------------------------------------------------------
wolffd@0 675
wolffd@0 676 Output Formats
wolffd@0 677
wolffd@0 678 ------------------------------------------------------------------------
wolffd@0 679 The output format is specified with the -Tlang flag on the command line,
wolffd@0 680 where lang is one of the following:
wolffd@0 681 Command-line
wolffd@0 682 parameter Format
wolffd@0 683 canon
wolffd@0 684 cmap Client-side imagemap
wolffd@0 685 dot DOT
wolffd@0 686 fig FIG
wolffd@0 687 gd
wolffd@0 688 gd2 GD/GD2 formats
wolffd@0 689 gif GIF
wolffd@0 690 hpgl HP-GL/2
wolffd@0 691 imap Server-side imagemap
wolffd@0 692 ismap Server-side imagemap (deprecated)
wolffd@0 693 jpg
wolffd@0 694 jpeg JPEG
wolffd@0 695 mif FrameMaker MIF format
wolffd@0 696 mp MetaPost
wolffd@0 697 pcl PCL
wolffd@0 698 pic PIC
wolffd@0 699 plain
wolffd@0 700 plain-ext Simple text format
wolffd@0 701 png Portable Network Graphics format
wolffd@0 702 ps PostScript
wolffd@0 703 ps2 PostScript for PDF
wolffd@0 704 svg
wolffd@0 705 svgz Scalable Vector Graphics
wolffd@0 706 vrml VRML
wolffd@0 707 vtx Visual Thought format
wolffd@0 708 wbmp Wireless BitMap format
wolffd@0 709 ------------------------------------------------------------------------
wolffd@0 710
wolffd@0 711 Format Descriptions
wolffd@0 712
wolffd@0 713 canon ,
wolffd@0 714 dot
wolffd@0 715 These two formats produce output in variations of the dot language.
wolffd@0 716 Using canon produces a prettyprinted version of the input, with no
wolffd@0 717 layout performed.
wolffd@0 718
wolffd@0 719 dot corresponds to attributed dot, and is the default output format. It
wolffd@0 720 reproduces the input, along with layout information for the graph. In
wolffd@0 721 particular, a bb attribute is attached to the graph, specifying the
wolffd@0 722 bounding box of the drawing. If the graph has a label, its position is
wolffd@0 723 specified by the lp attribute.
wolffd@0 724
wolffd@0 725 Each node gets pos, width and height attributes. If the node is a
wolffd@0 726 record, the record rectangles are given in the rects attribute. If the
wolffd@0 727 node is a polygon and the vertices attribute is defined, this attribute
wolffd@0 728 contains the vertices of the node.
wolffd@0 729
wolffd@0 730 Every edge is assigned a pos attribute, and if the edge has a label,
wolffd@0 731 the label position is given in lp.
wolffd@0 732 fig
wolffd@0 733 Outputs graphs in the FIG graphics language.
wolffd@0 734 gd ,
wolffd@0 735 gd2
wolffd@0 736 Output images in the GD and GD2 format. These are the internal formats
wolffd@0 737 used by the gd library. The latter is compressed.
wolffd@0 738 gif
wolffd@0 739 Outputs GIF bitmap images.
wolffd@0 740 hpgl
wolffd@0 741 Produces output in the HP-GL/2 vector graphic printer language.
wolffd@0 742 imap
wolffd@0 743 cmap
wolffd@0 744 Produces map files for server-side and client-side image maps,
wolffd@0 745 respectively. These can be used in a web page with a graphical
wolffd@0 746 form of the output, e.g. in JPEG or GIF format, to attach links
wolffd@0 747 to nodes and edges. For example, given the dot file
wolffd@0 748
wolffd@0 749 /* x.dot */
wolffd@0 750 digraph G {
wolffd@0 751 URL="http://www.research.att.com/";
wolffd@0 752 command [URL="command.html"];
wolffd@0 753 command -> output [URL="colors.html"];
wolffd@0 754 }
wolffd@0 755
wolffd@0 756
wolffd@0 757 this can be processed twice:
wolffd@0 758
wolffd@0 759 dot -Timap > x.map
wolffd@0 760 dot -Tgif > x.gif
wolffd@0 761
wolffd@0 762
wolffd@0 763 and then be referred to in a web page, such as
wolffd@0 764
wolffd@0 765 <A HREF="x.map">
wolffd@0 766 <IMG SRC="x.gif" ISMAP>
wolffd@0 767 </A>
wolffd@0 768
wolffd@0 769
wolffd@0 770 URLs can be attached to the root graph, nodes and edges. If the URL of
wolffd@0 771 a node contains the escape sequence "\N", it will be replaced by the
wolffd@0 772 node's name. If an edge has a URL, various points along the edge (but
wolffd@0 773 not the head or tail) will link to it. In addition, if the edge has a
wolffd@0 774 label, that will link to the URL.
wolffd@0 775
wolffd@0 776 As for the head of the edge, this is linked to the headURL, if set.
wolffd@0 777 Otherwise, it is linked to the edge's URL if that is defined. If the
wolffd@0 778 headURL contains the escape sequence "\N", it will be replaced by the
wolffd@0 779 headlabel, if defined. The analogous description holds for the tail,
wolffd@0 780 tailURL and taillabel.
wolffd@0 781 ismap
wolffd@0 782 Produces HTML image map files. This is a predecessor (circa 1994) of
wolffd@0 783 the IMAP format. Most servers now user the latter. URLs can be attached
wolffd@0 784 to the root graph, nodes and edges. Since edge links are attached to
wolffd@0 785 edge labels, an edge must have a label for its URL to be used. For both
wolffd@0 786 nodes and edges, if the URL has the escape sequence "\N" embedded in
wolffd@0 787 its string, this will be replaced with the node or edge name.
wolffd@0 788 jpg ,
wolffd@0 789 jpeg
wolffd@0 790 Output JPEG compressed image files. This format relies on the
wolffd@0 791 installation having the JPEG library.
wolffd@0 792 mif
wolffd@0 793 Generates Frame Maker MIF files.
wolffd@0 794 mp
wolffd@0 795 Produces MetaPost output.
wolffd@0 796 pcl
wolffd@0 797 Produces output in the PCL printer language. HP-GL is a subset of PCL,
wolffd@0 798 so that PCL output is the same as HP-GL, wrapped with some initial and
wolffd@0 799 final commands to set the printer to and from HP-GL mode.
wolffd@0 800 pic
wolffd@0 801 Outputs in PIC, the picture description language in the troff-family
wolffd@0 802 plain ,
wolffd@0 803 plain-ext
wolffd@0 804 The plain and plain-ext formats produce output using a simple,
wolffd@0 805 line-based language. The latter format differs in that, on edges, it
wolffd@0 806 provides port names on head and tail nodes when applicable.
wolffd@0 807
wolffd@0 808 There are four types of statements.
wolffd@0 809
wolffd@0 810 graph scale width height
wolffd@0 811 node name x y width height label style shape color fillcolor
wolffd@0 812 edge tail head n x1 y1 .. xn yn [label xl yl] style color
wolffd@0 813 stop
wolffd@0 814
wolffd@0 815
wolffd@0 816 graph
wolffd@0 817 The width and height values give the width and height of the
wolffd@0 818 drawing. The lower left corner of the drawing is at the origin.
wolffd@0 819 The scale value indicates how the drawing should be scaled if a
wolffd@0 820 size attribute was given and the drawing needs to be scaled to
wolffd@0 821 conform to that size. If no scaling is necessary, it will be set
wolffd@0 822 to 1.0. Note that all graph, node and edge coordinates and lengths
wolffd@0 823 are given unscaled.
wolffd@0 824 node
wolffd@0 825 The name value is the name of the node, and x and y give the
wolffd@0 826 node's position. The width and height are the width and height of
wolffd@0 827 the node. The label, style, shape, color and fillcolor give the
wolffd@0 828 node's label, style, shape, color and fillcolor, respectively,
wolffd@0 829 using attribute default values where necessary. If the node does
wolffd@0 830 not have a style attribute, "solid" is used.
wolffd@0 831 edge
wolffd@0 832 The tail and head values give the names of the head and tail
wolffd@0 833 nodes. n is the number of control points defining the B-spline
wolffd@0 834 forming the edge. This is followed by 2*n numbers giving the x and
wolffd@0 835 y coordinates of the control points in order from tail to head. If
wolffd@0 836 the edge has a label, this comes next followed by the x and y
wolffd@0 837 coordinates of the label's position. The edge description is
wolffd@0 838 completed by the edge's style and color. As with nodes, if a style
wolffd@0 839 is not defined, "solid" is used.
wolffd@0 840 The output consists of one graph line, a sequence of node lines, one
wolffd@0 841 per node, a sequence of edge lines, one per edge, and a final stop
wolffd@0 842 line. All units are in inches, represented by a floating point number.
wolffd@0 843 png
wolffd@0 844 Produces output in the PNG (Portable Network Graphics) format. PNG
wolffd@0 845 relies on having libz and the PNG library.
wolffd@0 846 ps
wolffd@0 847 Produces PostScript output.
wolffd@0 848 ps2
wolffd@0 849 Produces PostScript output with PDF notations. It is assumed the output
wolffd@0 850 will be directly converted into PDF format. The notations include PDF
wolffd@0 851 bounding box information, so that the resulting PDF file can be
wolffd@0 852 correctly used with pdf tools, such as pdflatex. In addition, if a node
wolffd@0 853 has a URL attribute, this gets translated into PDF code such that the
wolffd@0 854 node, when viewed in a PDF-viewer, e.g., acroread, is a link to the
wolffd@0 855 given URL. If a URL is attached to the graph, this serves as a base,
wolffd@0 856 such that relative URLs on nodes are derived from it.
wolffd@0 857 svg ,
wolffd@0 858 svgz
wolffd@0 859 Produce SVG output, the latter in compressed format. SVG relies on
wolffd@0 860 having libz.
wolffd@0 861 vrml
wolffd@0 862 Outputs graphs in the VRML format. VRML relies on having the PNG
wolffd@0 863 library.
wolffd@0 864 vtx
wolffd@0 865 Generates graph diagrams in the format for Confluents's Visual Thought.
wolffd@0 866 wbmp
wolffd@0 867 Produces output in the Wireless BitMap (WBMP) format, optimized for
wolffd@0 868 mobile computing.
wolffd@0 869
wolffd@0 870 ------------------------------------------------------------------------