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