1DOT(1) General Commands Manual DOT(1)
2
3
4
6 dot - filter for drawing directed graphs
7 neato - filter for drawing undirected graphs
8 twopi - filter for radial layouts of graphs
9 circo - filter for circular layout of graphs
10 fdp - filter for drawing undirected graphs
11 sfdp - filter for drawing large undirected graphs
12 patchwork - filter for squarified tree maps
13 osage - filter for array-based layouts
14
16 dot [options] [files]
17 neato [options] [files]
18 twopi [options] [files]
19 circo [options] [files]
20 fdp [options] [files]
21 sfdp [options] [files]
22 patchwork [options] [files]
23 osage [options] [files]
24
26 These are a collection of programs for drawing graphs. There is actu‐
27 ally only one main program; the specific layout algorithms are imple‐
28 mented as plugins. Thus, they largely share all of the same command-
29 line options.
30
31 dot draws directed graphs. It works well on directed acyclic graphs
32 and other graphs that can be drawn as hierarchies or have a natural
33 ``flow.''
34
35 neato draws undirected graphs using a ``spring'' model and reducing the
36 related energy (see Kamada and Kawai, Information Processing Letters
37 31:1, April 1989).
38
39 twopi draws graphs using a radial layout (see G. Wills, Symposium on
40 Graph Drawing GD'97, September, 1997). Basically, one node is chosen
41 as the center and put at the origin. The remaining nodes are placed on
42 a sequence of concentric circles centered about the origin, each a
43 fixed radial distance from the previous circle. All nodes distance 1
44 from the center are placed on the first circle; all nodes distance 1
45 from a node on the first circle are placed on the second circle; and so
46 forth.
47
48 circo draws graphs using a circular layout (see Six and Tollis, GD '99
49 and ALENEX '99, and Kaufmann and Wiese, GD '02.) The tool identifies
50 biconnected components and draws the nodes of the component on a cir‐
51 cle. The block‐cutpoint tree is then laid out using a recursive radial
52 algorithm. Edge crossings within a circle are minimized by placing as
53 many edges on the circle's perimeter as possible. In particular, if
54 the component is outerplanar, the component will have a planar layout.
55 If a node belongs to multiple non‐trivial biconnected components, the
56 layout puts the node in one of them. By default, this is the first non‐
57 trivial component found in the search from the root component.
58
59 fdp draws undirected graphs using a ``spring'' model. It relies on a
60 force‐directed approach in the spirit of Fruchterman and Reingold (cf.
61 Software‐Practice & Experience 21(11), 1991, pp. 1129‐1164).
62
63 sfdp also draws undirected graphs using the ``spring'' model described
64 above, but it uses a multi-scale approach to produce layouts of large
65 graphs in a reasonably short time.
66
67 patchwork draws the graph as a squarified treemap (see M. Bruls et al.,
68 ``Squarified treemaps'', Proc. Joint Eurographics and IEEE TCVG Symp.
69 on Visualization, 2000, pp. 33-42). The clusters of the graph are used
70 to specify the tree.
71
72 osage draws the graph using its cluster structure. For a given cluster,
73 each of its subclusters is laid out internally. Then the subclusters,
74 plus any remaining nodes, are repositioned based on the cluster's pack
75 and packmode attributes.
76
78 Graphviz uses an extensible plugin mechanism for its output renderers,
79 so to see what output formats your installation of dot supports you can
80 use ``dot -T:'' and check the warning message. Also, The plugin mecha‐
81 nism supports multiple implementations of the output formats, allowing
82 variations in the renderers and formatters. To see what variants are
83 available for a particular output format, use, for example: ``dot
84 -Tpng:'' and to force a particular variant, use, for example: ``dot
85 -Tpng:gd''
86
87 Traditionally, Graphviz supports the following:
88 -Tdot (Dot format containing layout information),
89 -Txdot (Dot format containing complete layout information),
90 -Tps (PostScript),
91 -Tpdf (PDF),
92 -Tsvg -Tsvgz (Structured Vector Graphics),
93 -Tfig (XFIG graphics),
94 -Tpng (png bitmap graphics),
95 -Tgif (gif bitmap graphics),
96 -Tjpg -Tjpeg (jpeg bitmap graphics),
97 -Tjson (xdot information encoded in JSON),
98 -Timap (imagemap files for httpd servers for each node or edge that has
99 a non‐null href attribute.),
100 -Tcmapx (client‐side imagemap for use in html and xhtml).
101 Additional less common or more special‐purpose output formats can be
102 found at https://www.graphviz.org/doc/info/output.html.
103
104 Alternative plugins providing support for a given output format can be
105 found from the error message resulting from appending a ':' to the for‐
106 mat. e.g. -Tpng: The first plugin listed is always the default.
107
108 The -P switch can be used to produce a graph of all output variants
109 supported by plugins in the local installation of graphviz.
110
112 Here is a synopsis of the graph file language, normally using the ex‐
113 tension .gv, for graphs:
114
115 [strict] (graph|digraph) name { statement‐list }
116 is the top‐level graph. If the graph is strict, then multiple edges are
117 not allowed between the same pairs of nodes. If it is a directed
118 graph, indicated by digraph, then the edgeop must be "->". If it is an
119 undirected graph then the edgeop must be "--".
120
121 Statements may be:
122
123 name=val;
124 node [name=val];
125 edge [name=val];
126 Set default graph, node, or edge attribute name to val. Any subgraph,
127 node, or edge appearing after this inherits the new default attributes.
128
129 n0 [name0=val0,name1=val1,...]; Creates node n0 (if it does not already
130 exist) and sets its attributes according to the optional list.
131
132 n0 edgeop n1 edgeop ... edgeop nn [name0=val0,name1=val1,...];
133 Creates edges between nodes n0, n1, ..., nn and sets their attributes
134 according to the optional list. Creates nodes as necessary.
135
136 [subgraph name] { statement‐list }
137 Creates a subgraph. Subgraphs may be used in place of n0, ..., nn in
138 the above statements to create edges. [subgraph name] is optional; if
139 missing, the subgraph is assigned an internal name.
140
141 The language accepts both C‐style comments /*C...*/ or //...
142
143 Attribute names and values are ordinary (C‐style) strings. The follow‐
144 ing sections describe attributes that control graph layout.
145
146 A more complete description of the language can be found at
147 https://www.graphviz.org/doc/info/lang.html.
148
150 Graphviz uses the name=value attributes, attached to graphs, subgraphs,
151 nodes and edges, to tailor the layout and rendering. We list the more
152 prominent attributes below. The complete list is available at
153 https://www.graphviz.org/doc/info/attrs.html.
154
155 Attributes Common to Nodes, Edges, Clusters and Graphs
156 href=url the default url for image map files; in PostScript files, the
157 base URL for all relative URLs, as recognized by Acrobat Distiller 3.0
158 and up.
159
160 URL=url (``URL'' is a synonym for ``href.'')
161
162 fontcolor=colorvalue sets the label text color.
163
164 A colorvalue may be "h,s,v" (hue, saturation, brightness) floating
165 point numbers between 0 and 1, or an X11 color name such as white,
166 black, red, green, blue, yellow, magenta, or cyan, or a "#rrggbb" (red,
167 green, blue, 2 hex characters each) value. See
168 https://www.graphviz.org/doc/info/attrs.html#k:color and
169 https://www.graphviz.org/doc/info/colors.html for further details.
170
171 fontsize=n sets the label type size to n points.
172
173 fontname=name sets the label font family name.
174
175 label=text where text may include escaped newlines \n, \l, or \r for
176 center, left, and right justified lines. The string '\G' value will be
177 replaced by the graph name. For node labels, the string '\N' value
178 will be replaced by the node name. For edges, if the substring '\T' is
179 found in a label, it will be replaced by the name of the tail node; if
180 the substring '\H' is found in a label, it will be replaced by the name
181 of the head node; if the substring '\E' value is found in a label it
182 will be replaced by: tail_node_name->head_node_name or by:
183 tail_node_name--head_node_name for undirected graphs.
184
185 Graphviz also supports special HTML-like labels for constructing com‐
186 plex node content. A full‐description of these is given at
187 https://www.graphviz.org/doc/info/shapes.html#html.
188
189 If a node has shape=record, the label may contain recursive box lists
190 delimited by { | }. Port identifiers in labels are set off by angle
191 brackets < >.
192
193 Graph Attributes
194 size="x,y" specifies the maximum bounding box of drawing in inches.
195
196 ratio=f sets the aspect ratio to f which may be a floating point num‐
197 ber, or one of the keywords fill, compress, or auto.
198
199 layout=engine indicates the preferred layout engine (dot, neato, fdp,
200 etc.) overriding the default from the basename of the command or the -K
201 commandline option.
202
203 margin=f sets the page margin (included in the page size).
204
205 ordering=out constrains order of out‐edges in a subgraph according to
206 their file sequence.
207
208 rotate=90 sets landscape mode. (orientation=land is backward compati‐
209 ble but obsolete.)
210
211 center=n a non‐zero value centers the drawing on the page.
212
213 color=colorvalue sets foreground color (bgcolor for background).
214
215 overlap=mode. This specifies what algorithm should do if any nodes
216 overlap. If mode is false, the program uses the Prism algorithm to ad‐
217 just the nodes to eliminate overlaps. If mode is scale, the layout is
218 uniformly scaled up, preserving node sizes, until nodes no longer over‐
219 lap. The latter technique removes overlaps while preserving symmetry
220 and structure, while the former removes overlaps more compactly but de‐
221 stroys symmetries. If mode is true (the default), no repositioning is
222 done. Since the dot algorithm always produces a layout with no node
223 overlaps, this attribute is only useful with other layouts.
224
225 stylesheet="file.css" includes a reference to a stylesheet in -Tsvg and
226 -Tsvgz outputs. Ignored by other formats.
227
228 splines If set to true, edges are drawn as splines. If set to poly‐
229 line, edges are drawn as polylines. If set to ortho, edges are drawn
230 as orthogonal polylines. In all of these cases, the nodes must not
231 overlap. If splines=false or splines=line, edges are drawn as line
232 segments. The default is true for dot, and false for all other lay‐
233 outs.
234
235
236 (dot‐specific attributes)
237
238 nodesep=f sets the minimum separation between nodes.
239
240 ranksep=f sets the minimum separation between ranks.
241
242 rankdir=LR|RL|BT requests a left‐to‐right, right‐to‐left, or bottom‐to‐
243 top, drawing.
244
245 rank=same (or min or max) in a subgraph constrains the rank assignment
246 of its nodes. If a subgraph's name has the prefix cluster, its nodes
247 are drawn in a distinct rectangle of the layout. Clusters may be
248 nested.
249
250
251 (neato‐specific attributes)
252 mode=val. Algorithm for minimizing energy in the layout. By default,
253 neato uses stress majorization. If mode=KK, it uses a version of gradi‐
254 ent descent.
255
256 model=val. The neato model computes the desired distances between all
257 pairs of vertices. By default, it uses the length of the shortest path.
258 If model is set to circuit, a circuit-resistance model is used. If
259 model is set to subset, it uses a model whereby the edge length is the
260 number of nodes that are neighbors of exactly one of the edge's ver‐
261 tices.
262
263 start=val. Requests random initial placement and seeds the random num‐
264 ber generator. If val is not an integer, the process ID or current
265 time is used as the seed.
266
267 epsilon=n. Sets the cutoff for the solver. The default is 0.1.
268
269
270 (twopi‐specific attributes)
271 root=ctr. This specifies the node to be used as the center of the lay‐
272 out. If not specified, twopi will randomly pick one of the nodes that
273 are furthest from a leaf node, where a leaf node is a node of degree 1.
274 If no leaf nodes exists, an arbitrary node is picked as center.
275
276 ranksep=val. Specifies the radial distance in inches between the se‐
277 quence of rings. The default is 0.75.
278
279
280 (circo‐specific attributes)
281 root=nodename. Specifies the name of a node occurring in the root
282 block. If the graph is disconnected, the root node attribute can be
283 used to specify additional root blocks.
284
285 mindist=value. Sets the minimum separation between all nodes. If not
286 specified then circo uses a default value of 1.0.
287
288
289 (fdp‐specific attributes)
290 K=val. Sets the default ideal node separation in the layout.
291
292 maxiter=val. Sets the maximum number of iterations used to layout the
293 graph.
294
295 start=val. Adjusts the random initial placement of nodes with no speci‐
296 fied position. If val is an integer, it is used as the seed for the
297 random number generator. If val is not an integer, a random system‐
298 generated integer, such as the process ID or current time, is used as
299 the seed.
300
301 Node Attributes
302 height=d or width=d sets minimum height or width. Adding fixed‐
303 size=true forces these to be the actual size (text labels are ignored).
304
305 shape=builtin_polygon record epsf
306 builtin_polygon can be such values as plaintext, ellipse, oval, circle,
307 egg, triangle, box, diamond, trapezium, parallelogram, house, hexagon,
308 octagon, note, tab, box3d, or component,, among others. (Polygons are
309 defined or modified by the following node attributes: regular, periph‐
310 eries, sides, orientation, distortion and skew.) epsf uses the node's
311 shapefile attribute as the path name of an external EPSF file to be au‐
312 tomatically loaded for the node shape.
313
314 See https://www.graphviz.org/doc/info/shapes.html for a complete de‐
315 scription of node shapes.
316
317 color=colorvalue sets the outline color, and the default fill color if
318 style=filled and fillcolor is not specified.
319
320 fillcolor=colorvalue sets the fill color when style=filled. If not
321 specified, the fillcolor when style=filled defaults to be the same as
322 the outline color.
323
324 style=filled solid dashed dotted bold invis
325
326 xlabel="text" specifies a label that will be place near, but outside,
327 of a node. The normal label string is placed within the node shape.
328
329 target="target" is a target string for client‐side imagemaps and SVG,
330 effective when nodes have a URL. The target string is used to deter‐
331 mine which window of the browser is used for the URL. Setting it to
332 "_graphviz" will open a new window if it doesn't already exist, or re‐
333 use it if it does. If the target string is empty, the default, then no
334 target attribute is included in the output. The substrings '\N' and
335 '\G' are substituted in the same manner as for the node label attri‐
336 bute. Additionally the substring '\L' is substituted with the node la‐
337 bel string.
338
339 tooltip="text" is a tooltip string for client‐side imagemaps and SVG,
340 effective when nodes have a URL. The tooltip string defaults to be the
341 same as the label string, but this attribute permits nodes without la‐
342 bels to still have tooltips thus permitting denser graphs. The sub‐
343 strings '\N' and '\G' are substituted in the same manner as for the
344 node label attribute. Additionally the substring '\L' is substituted
345 with the node label string.
346
347 The following attributes apply only to polygon shape nodes:
348
349 regular=n if n is non‐zero then the polygon is made regular, i.e. sym‐
350 metric about the x and y axis, otherwise the polygon takes on the as‐
351 pect ratio of the label. builtin_polygons that are not already regular
352 are made regular by this attribute. builtin_polygons that are already
353 regular are not affected (i.e. they cannot be made asymmetric).
354
355 peripheries=n sets the number of periphery lines drawn around the poly‐
356 gon. This value supersedes the number of periphery lines of
357 builtin_polygons.
358
359 sides=n sets the number of sides to the polygon. n<3 results in an el‐
360 lipse. This attribute is ignored by builtin_polygons.
361
362 orientation=f sets the orientation of the first apex of the polygon
363 counterclockwise from the vertical, in degrees. f may be a floating
364 point number. The orientation of labels is not affected by this attri‐
365 bute. This attribute is added to the initial orientation of
366 builtin_polygons.
367
368 distortion=f sets the amount of broadening of the top and narrowing of
369 the bottom of the polygon (relative to its orientation). Floating
370 point values between -1 and +1 are suggested. This attribute is ig‐
371 nored by builtin_polygons.
372
373 skew=f sets the amount of right‐displacement of the top and left‐dis‐
374 placement of the bottom of the polygon (relative to its orientation).
375 Floating point values between -1 and +1 are suggested. This attribute
376 is ignored by builtin_polygons.
377
378
379 (circo‐specific attributes)
380 root=true/false. This specifies that the block containing the given
381 node be treated as the root of the spanning tree in the layout.
382
383
384 (neato‐ and fdp‐specific attributes)
385 pin=val. If val is true, the node will remain at its initial position.
386
387
388 Edge Attributes
389 weight=val where val is the cost of the edge. For dot, weights must be
390 non-negative integers. Values greater than 1 tend to shorten the edge;
391 weight 0 flat edges are ignored for ordering nodes. In twopi, a weight
392 of 0 will cause the edge to be ignored in constructing the underlying
393 spanning tree. For neato and fdp, a heavier weight will put more empha‐
394 sis on the algorithm achieving an edge length closer to that specified
395 by the edge's len attribute.
396
397 style=solid dashed dotted bold invis
398
399 color=colorvalue sets the line color for edges.
400
401 color=colorvaluelist a ':' separated list of colorvalue creates paral‐
402 lel edges, one edge for each color.
403
404 dir=forward back both none controls arrow direction.
405
406 tailclip,headclip=false disables endpoint shape clipping.
407
408 target="text" is a target string for client‐side imagemaps and SVG, ef‐
409 fective when edges have a URL. If the target string is empty, the de‐
410 fault, then no target attribute is included in the output. The sub‐
411 strings '\T', '\H', '\E' and '\G' are substituted in the same manner as
412 for the edge label attribute. Additionally the substring '\L' is sub‐
413 stituted with the edge label string.
414
415 tooltip="text" is a tooltip string for client‐side imagemaps effective
416 when edges have a URL. The tooltip string defaults to be the same as
417 the edge label string. The substrings '\T', '\H', '\E' and '\G' are
418 substituted in the same manner as for the edge label attribute. Addi‐
419 tionally the substring '\L' is substituted with the edge label string.
420
421 arrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, tee,
422 empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow.
423 Specifies the shape of the glyph occurring where the edge touches the
424 head or tail node, respectively. Note that this only specifies the
425 shape. The dir attribute determines whether or not the glyph is drawn.
426
427 arrowsize=val specifies a multiplicative scale factor for the size of
428 the arrowhead. inv_length=6,inv_width=7,dot_radius=2)
429
430 headlabel,taillabel=text for labels appearing near the head and tail
431 nodes of an edge. labelfontcolor, labelfontname, labelfontsize for
432 head and tail labels. The substrings '\T', '\H', '\E' and '\G' are
433 substituted in the same manner as for the edge label attribute. Addi‐
434 tionally the substring '\L' is substituted with the edge label string.
435
436 headhref="url" sets the url for the head port in imagemap, PostScript
437 and SVG files. The substrings '\T', '\H', '\E' and '\G' are substi‐
438 tuted in the same manner as for the edge label attribute. Additionally
439 the substring '\L' is substituted with the edge label string.
440
441 headURL="url" (headURL is a synonym for headhref.)
442
443 headtarget="headtarget" is a target string for client‐side imagemaps
444 and SVG, effective when edge heads have a URL. The headtarget string
445 is used to determine which window of the browser is used for the URL.
446 If the headtarget string is empty, the default, then headtarget de‐
447 faults to the same value as target for the edge. The substrings '\T',
448 '\H', '\E' and '\G' are substituted in the same manner as for the edge
449 label attribute. Additionally the substring '\L' is substituted with
450 the edge label string.
451
452 headtooltip="tooltip" is a tooltip string for client‐side imagemaps ef‐
453 fective when head ports have a URL. The tooltip string defaults to be
454 the same as the headlabel string. The substrings '\T', '\H', and '\E'
455 are substituted in the same manner as for the edge label attribute.
456 Additionally the substring '\L' is substituted with the edge label
457 string.
458
459 tailhref="url" sets the url for the tail port in imagemap, PostScript
460 and SVG files. The substrings '\T', '\H', '\E' and '\G' are substi‐
461 tuted in the same manner as for the edge label attribute. Additionally
462 the substring '\L' is substituted with the edge label string.
463
464 tailURL="url" (tailURL is a synonym for tailhref.)
465
466 tailtarget="tailtarget" is a target string for client‐side imagemaps
467 and SVG, effective when edge tails have a URL. The tailtarget string
468 is used to determine which window of the browser is used for the URL.
469 If the tailtarget string is empty, the default, then tailtarget de‐
470 faults to the same value as target for the edge. The substrings '\T',
471 '\H', '\E' and '\G' are substituted in the same manner as for the edge
472 label attribute. Additionally the substring '\L' is substituted with
473 the edge label string.
474
475 tailtooltip="tooltip" is a tooltip string for client‐side imagemaps ef‐
476 fective when tail ports have a URL. The tooltip string defaults to be
477 the same as the taillabel string. The substrings '\T', '\H', '\E' and
478 '\G' are substituted in the same manner as for the edge label attri‐
479 bute. Additionally the substring '\L' is substituted with the edge la‐
480 bel string.
481
482 labeldistance and labelangle (in degrees CCW) specify the placement of
483 head and tail labels.
484
485 decorate draws line from edge to label.
486
487 samehead,sametail aim edges having the same value to the same port, us‐
488 ing the average landing point.
489
490
491 (dot‐specific attributes)
492 constraint=false causes an edge to be ignored for rank assignment.
493
494 minlen=n where n is an integer factor that applies to the edge length
495 (ranks for normal edges, or minimum node separation for flat edges).
496
497 xlabel="text" Edge labels in dot are treated as special types of nodes,
498 with space allocated for them during node layout. This can sometimes
499 deform the edge routing. If an xlabel is used instead, the label is
500 placed after all nodes and edges have been positioned. In turn, this
501 may mean that there is some overlap among the labels.
502
503 (neato and fdp‐specific attributes)
504 len=f sets the optimal length of an edge. The default is 1.0.
505
507 -G sets a default graph attribute.
508 -N sets a default node attribute.
509 -E sets a default edge attribute. Example: -Gsize="7,8" -Nshape=box
510 -Efontsize=8
511
512 -lfile loads custom PostScript library files. Usually these define
513 custom shapes or styles. If -l is given by itself, the standard li‐
514 brary is omitted.
515
516 -Tlang sets the output language as described above.
517
518
519 -n[1|2] (no‐op) If set, neato assumes nodes have already been posi‐
520 tioned and all nodes have a pos attribute giving the positions. It
521 then performs an optional adjustment to remove node‐node overlap, de‐
522 pending on the value of the overlap attribute, computes the edge lay‐
523 outs, depending on the value of the splines attribute, and emits the
524 graph in the appropriate format. If num is supplied, the following ac‐
525 tions occur:
526 num = 1
527 Equivalent to -n.
528 num > 1
529 Use node positions as specified, with no adjustment to remove node‐node
530 overlaps, and use any edge layouts already specified by the pos attri‐
531 bute. neato computes an edge layout for any edge that does not have a
532 pos attribute. As usual, edge layout is guided by the splines attri‐
533 bute.
534
535 -Klayout override the default layout engine implied by the command
536 name.
537
538 -O automatically generate output filenames based on the input filename
539 and the -T format.
540
541 -P generate a graph of the currently available plugins.
542
543 -v (verbose) prints various information useful for debugging.
544
545 -c configure plugins.
546
547 -qlevel set level of message suppression. The default is 1.
548
549 -sfscale scale input by fscale, the default is 72.
550
551 -y invert y coordinate in output.
552
553 -ofile write output to file.
554
555 -x reduce graph.
556
557 -Lg don't use grid.
558
559 -LO use old attractive force.
560
561 -Lni set number of iterations to i.
562
563 -LUi set unscaled factor to i.
564
565 -LCv set overlap expansion factor to v.
566
567 -LT[*]v set temperature (temperature factor) to v.
568
569 -V (version) prints version information and exits.
570
571 -? prints the usage and exits.
572
573 A complete description of the available command‐line options can be
574 found at https://www.graphviz.org/doc/info/command.html.
575
577 digraph test123 {
578 a -> b -> c;
579 a -> {x y};
580 b [shape=box];
581 c [label="hello\nworld",color=blue,fontsize=24,
582 fontname="Palatino-Italic",fontcolor=red,style=filled];
583 a -> z [label="hi", weight=100];
584 x -> z [label="multi-line\nlabel"];
585 edge [style=dashed,color=red];
586 b -> x;
587 {rank=same; b x}
588 }
589
590 graph test123 {
591 a -- b -- c;
592 a -- {x y};
593 x -- c [w=10.0];
594 x -- y [w=5.0,len=3];
595 }
596
598 Edge splines can overlap unintentionally.
599
600 Flat edge labels are slightly broken. Intercluster edge labels are to‐
601 tally broken.
602
603 Because unconstrained optimization is employed, node boxes can possibly
604 overlap or touch unrelated edges. All existing spring embedders seem
605 to have this limitation.
606
607 Apparently reasonable attempts to pin nodes or adjust edge lengths and
608 weights can cause instability.
609
611 Stephen C. North <north@research.att.com>
612 Emden R. Gansner <erg@graphviz.org>
613 John C. Ellson <ellson@research.att.com>
614 Yifan Hu <yifanhu@yahoo.com>
615
616 The bitmap driver (PNG, GIF etc) is by Thomas Boutell,
617 <http://www.boutell.com/gd>
618
619 The Truetype font renderer is from the Freetype Project (David Turner,
620 Robert Wilhelm, and Werner Lemberg) (who can be contacted at
621 freetype-devel@lists.lrz-muenchen.de).
622
624 This man page contains only a small amount of the information related
625 to the Graphviz layout programs. The most complete information can be
626 found at https://www.graphviz.org/documentation/, especially in the on‐
627 line reference pages. Most of these documents are also available in the
628 doc and doc/info subtrees in the source and binary distributions.
629
630 dotty(1)
631 tcldot(n)
632 xcolors(1)
633 libcgraph(3)
634
635 E. R. Gansner, S. C. North, K. P. Vo, "DAG ‐ A Program to Draw Di‐
636 rected Graphs", Software ‐ Practice and Experience 17(1), 1988, pp.
637 1047‐1062.
638 E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for
639 Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp.
640 214‐230.
641 S. North and E. Koutsofios, "Applications of graph visualization",
642 Graphics Interface 94, pp. 234‐245.
643 E. R. Gansner and E. Koutsofios and S. C. North, "Drawing Graphs with
644 dot," Available at https://www.graphviz.org/pdf/dotguide.pdf.
645 S. C. North, "NEATO User's Manual". Available
646 https://www.graphviz.org/pdf/neatoguide.pdf.
647 E. R. Gansner and Y. Hu, "Efficient, Proximity-Preserving Node Overlap
648 Removal", J. Graph Algorithms Appl., 14(1) pp. 53‐74, 2010.
649
651 On non-Windows platforms, sending SIGUSR1 to Graphviz can be used to
652 toggle on and off some extra points reporting in the neatogen code.
653
654
655
656 12 January 2015 DOT(1)