1DOT(1)                      General Commands Manual                     DOT(1)
2
3
4

NAME

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

SYNOPSIS

14       dot  [-(G|N|E)name=value]  [-Tlang]  [-llibfile] [-ooutfile] [-Klayout]
15       [-O] [-P] [-v] [-V] [files]
16       neato [-(G|N|E)name=value] [-Tlang] [-llibfile]  [-n[1|2]]  [-ooutfile]
17       [-Klayout] [-O] [-P] [-v] [-V] [files]
18       twopi  [-(G|N|E)name=value] [-Tlang] [-llibfile] [-ooutfile] [-Klayout]
19       [-O] [-P] [-v] [-V] [files]
20       circo [-(G|N|E)name=value] [-Tlang] [-llibfile] [-ooutfile]  [-Klayout]
21       [-O] [-P] [-v] [-V] [files]
22       fdp  [-(G|N|E)name=value]  [-Tlang]  [-llibfile] [-ooutfile] [-Klayout]
23       [-O] [-P] [-v] [-V] [files]
24       sfdp [-(G|N|E)name=value] [-Tlang] [-llibfile]  [-ooutfile]  [-Klayout]
25       [-O] [-P] [-v] [-V] [files]
26

DESCRIPTION

28       dot draws directed graphs.  It works well on DAGs and other graphs that
29       can be drawn as hierarchies.   It  reads  attributed  graph  files  and
30       writes  drawings.   By default, the output format dot is the input file
31       with layout coordinates appended.
32
33       neato draws undirected graphs using ``spring'' models (see  Kamada  and
34       Kawai,  Information  Processing Letters 31:1, April 1989).  Input files
35       must be formatted in the dot attributed graph  language.   By  default,
36       the  output  of  neato  is  the  input  graph  with  layout coordinates
37       appended.
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
56       If  a  node belongs to multiple non‐trivial biconnected components, the
57       layout puts the node in one of them. By default, this is the first non‐
58       trivial component found in the search from the root component.
59
60       fdp  draws  undirected  graphs using a ``spring'' model. It relies on a
61       force‐directed approach in the spirit of Fruchterman and Reingold  (cf.
62       Software‐Practice & Experience 21(11), 1991, pp. 1129‐1164).
63
64       sfdp  also draws undirected graphs using the ``spring'' model described
65       above, but it uses a multi-scale approach to produce layouts  of  large
66       graphs in a reasonably short time.
67

OUTPUT FORMATS

69       Dot uses an extensible plugin mechanism for its output renderers, so to
70       see what output formats your installation of dot supports you  can  use
71       ``dot  -Txxx''  (where xxx is an unlikely format) and check the warning
72       message.  Also, The plugin mechanism supports multiple  implementations
73       of  the  output  formats.  To see what variants are available, use, for
74       example: ``dot -Tpng:'' and to force a  particular  variant,  use,  for
75       example: ``dot -Tpng:gd''
76
77       Traditionally,  dot  supports  the  following: -Tps (PostScript), -Tsvg
78       -Tsvgz (Structured  Vector  Graphics),  -Tfig  (XFIG  graphics),  -Tmif
79       (FrameMaker  graphics),  -Thpgl  (HP pen plotters), and -Tpcl (Laserjet
80       printers), -Tpng -Tgif (bitmap graphics), -Tdia (GTK+ based  diagrams),
81       -Timap (imagemap files for httpd servers for each node or edge that has
82       a non‐null "href" attribute.), -Tcmapx (client‐side imagemap for use in
83       html and xhtml).  Additional less common or more special‐purpose output
84       formats  can  be  found  at   http://www.graphviz.org/cvs/doc/info/out
85       put.html.)
86
87       Alternative  plugins providing support for a given output format can be
88       found from the error message resulting from appending a ':' to the for‐
89       mat. e.g. -Tpng: The first plugin listed is always the default.
90
91       The  -P  switch  can  be used to produce a graph of all output variants
92       supported by plugins in the local installation of graphviz.
93

GRAPH FILE LANGUAGE

95       Here is a synopsis of the graph file language, traditionally using  the
96       extension .dot, for graphs:
97
98       [strict] (graph|digraph) name { statement‐list }
99       Is  the top level graph. If the graph is strict then multiple edges are
100       not allowed between the same pairs of  nodes.   If  it  is  a  directed
101       graph,  indicated by digraph, then the edgeop must be "->". If it is an
102       undirected graph then the edgeop must be "--".  Statements may be:
103
104       name=val;
105       node [name=val];
106       edge [name=val];
107       Set default graph, node, or edge attribute name to val.  Any  subgraph,
108       node, or edge appearing after this inherits the new default attributes.
109
110       n0 [name0=val0,name1=val1,...]; Creates node n0 (if it does not already
111       exist) and sets its attributes according to the optional list.
112
113       n0 edgeop n1 edgeop ... edgeop nn [name0=val0,name1=val1,...];
114       Creates edges between nodes n0, n1, ..., nn and sets  their  attributes
115       according to the optional list.  Creates nodes as necessary.
116
117       [subgraph name] { statement‐list }
118       Creates  a  subgraph.  Subgraphs may be used in place of n0, ..., nn in
119       the above statements to create edges.  [subgraph name] is optional;  if
120       missing, the subgraph is assigned an internal name.
121
122       Comments may be /*C‐like*/ or //C++‐like.
123
124
125       Attribute names and values are ordinary (C‐style) strings.  The follow‐
126       ing sections describe attributes that control graph layout.
127
128

GRAPH ATTRIBUTES

130       size="x,y" sets bounding box of drawing in inches.
131
132       page="x,y" sets the PostScript pagination unit.
133
134       ratio=f sets the aspect ratio to f which may be a floating  point  num‐
135       ber, or one of the keywords fill, compress, or auto.
136
137       layout=engine  indicates  the  preferred layout engine ("dot", "neato",
138       fdp" etc) overriding the default from the basename of  the  command  or
139       the -K commandline option.
140
141       margin=f sets the page margin (included in the page size).
142
143       nodesep=f sets the minimum separation between nodes.
144
145       ranksep=f sets the minimum separation between ranks.
146
147       ordering=out  constrains  order of out‐edges in a subgraph according to
148       their file sequence.
149
150       rankdir=LR|RL|BT requests a left‐to‐right, right‐to‐left, or bottom‐to‐
151       top, drawing.
152
153       pagedir=[TBLR][TBLR] sets the major and minor order of pagination.
154
155       rank=same  (or min or max) in a subgraph constrains the rank assignment
156       of its nodes.   If a subgraph's name has the prefix cluster, its  nodes
157       are  drawn  in  a  distinct  rectangle  of the layout.  Clusters may be
158       nested.
159
160       rotate=90 sets landscape mode.  (orientation=land is backward  compati‐
161       ble but obsolete.)
162
163       center=n a non‐zero value centers the drawing on the page.
164
165       nslimit=f  or mclimit=f adjusts the bound on the number of network sim‐
166       plex  or  mincross  iterations  by  the  given  ratio.   For   example,
167       mclimit=2.0 runs twice as long.
168
169       layers="id:id:id:id"  is  a  sequence  of layer identifiers for overlay
170       diagrams.  The PostScript array variable layercolorseq sets the assign‐
171       ment of colors to layers. The least index is 1 and each element must be
172       a 3‐element array to be interpreted as a color coordinate.
173
174       color=colorvalue sets foreground color (bgcolor for background).
175
176       href="url" the default url for image map files;  in  PostScript  files,
177       the  base URL for all relative URLs, as recognized by Acrobat Distiller
178       3.0 and up.
179
180       URL="url" ("URL" is a synonym for "href".)
181
182       stylesheet="file.css" includes a reference to a stylesheet in -Tsvg and
183       -Tsvgz outputs.  Ignored by other formats.
184
185       splines.  If  set to true, edges are drawn as splines.  If set to poly‐
186       line, edges are drawn as polylines.  If set to ortho, edges  are  drawn
187       as  orthogonal  polylines.   In  all  of these cases, the nodes may not
188       overlap.  If splines=false or splines=line, edges  are  drawn  as  line
189       segments.   The  default  is true for dot, and false for all other lay‐
190       outs.
191
192
193       (neato‐specific attributes)
194       start=val.  Requests random initial placement and seeds the random num‐
195       ber  generator.   If  val  is not an integer, the process ID or current
196       time is used as the seed.
197
198       epsilon=n.  Sets the cutoff for the solver.  The default is 0.1.
199
200
201       (twopi‐specific attributes)
202       root=ctr. This specifies the node to be used as the center of the  lay‐
203       out.  If  not specified, twopi will randomly pick one of the nodes that
204       are furthest from a leaf node, where a leaf node is a node of degree 1.
205       If no leaf nodes exists, an arbitrary node is picked as center.
206
207       ranksep=val.  Specifies  the  radial  distance  in  inches  between the
208       sequence of rings. The default is 0.75.
209
210       overlap=mode. This specifies what twopi should do if any nodes overlap.
211       If  mode  is  "false",  the program uses Voronoi diagrams to adjust the
212       nodes to eliminate overlaps. If mode is "scale",  the  layout  is  uni‐
213       formly scaled up, preserving node sizes, until nodes no longer overlap.
214       The latter technique removes overlaps  while  preserving  symmetry  and
215       structure,  while  the  former  removes  overlaps  more  compactly  but
216       destroys symmetries.  If mode is "true" (the default), no repositioning
217       is done.
218
219
220       (circo‐specific attributes)
221       root=nodename.  Specifies  the  name  of  a  node occurring in the root
222       block. If the graph is disconnected, the root  node  attribute  can  be
223       used to specify additional root blocks.
224
225       mindist=value.  Sets  the  minimum separation between all nodes. If not
226       specified then circo uses a default value of 1.0.
227
228
229       (fdp‐specific attributes)
230       K=val. Sets the default ideal node separation in the layout.
231
232       maxiter=val. Sets the maximum number of iterations used to  layout  the
233       graph.
234
235       start=val. Adjusts the random initial placement of nodes with no speci‐
236       fied position.  If val is is an integer, it is used as the seed for the
237       random  number  generator.   If val is not an integer, a random system‐
238       generated integer, such as the process ID or current time, is  used  as
239       the seed.
240

NODE ATTRIBUTES

242       height=d  or  width=d  sets  minimum  height  or  width.  Adding fixed‐
243       size=true forces these to be the actual size (text labels are ignored).
244
245       shape=record polygon epsf builtin_polygon
246       builtin_polygon is one of: plaintext ellipse oval circle  egg  triangle
247       box  diamond  trapezium  parallelogram  house  hexagon octagon note tab
248       box3d component.  (Polygons are defined or modified  by  the  following
249       node  attributes:  regular, peripheries, sides, orientation, distortion
250       and skew.)  epsf uses the node's shapefile attribute as the  path  name
251       of an external EPSF file to be automatically loaded for the node shape.
252
253       label=text  where  text  may include escaped newlines \n, \l, or \r for
254       center, left, and right justified lines.  The string '\N' value will be
255       replaced  by  the node name.  The string '\G' value will be replaced by
256       the graph name.  Record labels may contain recursive box  lists  delim‐
257       ited  by { | }.  Port identifiers in labels are set off by angle brack‐
258       ets < >.  In the graph file, use colon (such as, node0:port28).
259
260       fontsize=n sets the label type size to n points.
261
262       fontname=name sets the label font family name.
263
264       color=colorvalue sets the outline color, and the default fill color  if
265       style=filled and fillcolor is not specified.
266
267       fillcolor=colorvalue  sets  the  fill  color when style=filled.  If not
268       specified, the fillcolor when style=filled defaults to be the  same  as
269       the outline color.
270
271       fontcolor=colorvalue sets the label text color.
272
273       A  colorvalue  may  be  "h,s,v"  (hue, saturation, brightness) floating
274       point numbers between 0 and 1, or an X11 color name such as white black
275       red  green  blue yellow magenta cyan or burlywood, or a "#rrggbb" (red,
276       green, blue, 2 hex characters each) value.
277
278       style=filled solid dashed dotted bold invis or any Postscript code.
279
280       layer=id or id:id or "all" sets the node's active  layers.   The  empty
281       string means no layers (invisible).
282
283       The following attributes apply only to polygon shape nodes:
284
285       regular=n  if n is non‐zero then the polygon is made regular, i.e. sym‐
286       metric about the x and y axis,  otherwise  the  polygon  takes  on  the
287       aspect ratio of the label.  builtin_polygons that are not already regu‐
288       lar are made regular by  this  attribute.   builtin_polygons  that  are
289       already  regular  are  not affected (i.e.  they cannot be made asymmet‐
290       ric).
291
292       peripheries=n sets the number of periphery lines drawn around the poly‐
293       gon.    This   value  supersedes  the  number  of  periphery  lines  of
294       builtin_polygons.
295
296       sides=n sets the number of sides to the  polygon.  n<3  results  in  an
297       ellipse.  This attribute is ignored by builtin_polygons.
298
299       orientation=f  sets  the  orientation  of the first apex of the polygon
300       counterclockwise from the vertical, in degrees.  f may  be  a  floating
301       point  number.   The  orientation  of  labels  is  not affected by this
302       attribute.  This attribute is  added  to  the  initial  orientation  of
303       builtin_polygons.
304
305       distortion=f  sets the amount of broadening of the top and narrowing of
306       the bottom of the polygon  (relative  to  its  orientation).   Floating
307       point  values  between  -1  and  +1  are  suggested.  This attribute is
308       ignored by builtin_polygons.
309
310       skew=f sets the amount of right‐displacement of the top  and  left‐dis‐
311       placement  of  the bottom of the polygon (relative to its orientation).
312       Floating point values between -1 and +1 are suggested.  This  attribute
313       is ignored by builtin_polygons.
314
315       href="url"  sets  the  url for the node in imagemap, PostScript and SVG
316       files.  The substrings '\N' and '\G' are substituted in the same manner
317       as  for  the  node label attribute.  Additionally the substring '\L' is
318       substituted with the node label string.
319
320       URL="url" ("URL" is a synonym for "href".)
321
322       target="target" is a target string for client‐side imagemaps  and  SVG,
323       effective  when  nodes have a URL.  The target string is used to deter‐
324       mine which window of the browser is used for the URL.   Setting  it  to
325       "_graphviz"  will open a new window if it doesn't already exist, or re‐
326       use it if it does.  If the target string is empty, the default, then no
327       target  attribute  is  included in the output.  The substrings '\N' and
328       '\G' are  substituted  in  the  same  manner  as  for  the  node  label
329       attribute.   Additionally  the  substring  '\L' is substituted with the
330       node label string.
331
332       tooltip="tooltip" is a tooltip string  for  client‐side  imagemaps  and
333       SVG,  effective  when nodes have a URL.  The tooltip string defaults to
334       be the same as the label string, but this attribute permits nodes with‐
335       out  labels  to still have tooltips thus permitting denser graphs.  The
336       substrings '\N' and '\G' are substituted in the same manner as for  the
337       node  label  attribute.  Additionally the substring '\L' is substituted
338       with the node label string.
339
340
341       (circo‐specific attributes)
342       root=true/false. This specifies that the  block  containing  the  given
343       node be treated as the root of the spanning tree in the layout.
344
345
346       (fdp‐specific attributes)
347       pin=val.  If  val  is "true", the node will remain at its initial posi‐
348       tion.
349
350

EDGE ATTRIBUTES

352       minlen=n where n is an integer factor that applies to the  edge  length
353       (ranks for normal edges, or minimum node separation for flat edges).
354
355       weight=n  where n is the integer cost of the edge.  Values greater than
356       1 tend to shorten the edge.  Weight 0 flat edges are ignored for order‐
357       ing nodes.
358
359       label=text  where  text  may include escaped newlines \n, \l, or \r for
360       centered, left, or right justified lines.  If  the  substring  '\T'  is
361       found  in  a  label  it will be replaced by the tail_node name.  If the
362       substring '\H' is found in a label it will be replaced by the head_node
363       name.   If  the  substring  '\E'  value  is found in a label it will be
364       replaced by: tail_node_name->head_node_name If the  substring  '\G'  is
365       found  in  a  label  it  will  be  replaced  by the graph name.  or by:
366       tail_node_name--head_node_name for undirected graphs.
367
368       fontsize=n sets the label type size to n points.
369
370       fontname=name sets the label font family name.
371
372       fontcolor=colorvalue sets the label text color.
373
374       style=solid dashed dotted bold invis
375
376       color=colorvalue sets the line color for edges.
377
378       color=colorvaluelist a ':' separated list of colorvalue creates  paral‐
379       lel edges, one edge for each color.
380
381       dir=forward back both none controls arrow direction.
382
383       tailclip,headclip=false disables endpoint shape clipping.
384
385       href="url"  sets  the  url for the node in imagemap, PostScript and SVG
386       files.  The substrings '\T', '\H', '\E' and '\G' are substituted in the
387       same  manner  as  for  the edge label attribute.  Additionally the sub‐
388       string '\L' is substituted with the edge label string.
389
390       URL="url" ("URL" is a synonym for "href".)
391
392       target="target" is a target string for client‐side imagemaps  and  SVG,
393       effective  when  edges  have a URL.  If the target string is empty, the
394       default, then no target attribute is included in the output.  The  sub‐
395       strings '\T', '\H', '\E' and '\G' are substituted in the same manner as
396       for the edge label attribute.  Additionally the substring '\L' is  sub‐
397       stituted with the edge label string.
398
399       tooltip="tooltip"  is a tooltip string for client‐side imagemaps effec‐
400       tive when edges have a URL.  The tooltip string defaults to be the same
401       as the edge label string.  The substrings '\T', '\H', '\E' and '\G' are
402       substituted in the same manner as for the edge label attribute.   Addi‐
403       tionally the substring '\L' is substituted with the edge label string.
404
405       arrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, tee,
406       empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow.
407
408       arrowsize                                 (norm_length=10,norm_width=5,
409       inv_length=6,inv_width=7,dot_radius=2)
410
411       headlabel,taillabel=string  for port labels.  labelfontcolor,labelfont‐
412       name,labelfontsize for head and  tail  labels.   The  substrings  '\T',
413       '\H',  '\E' and '\G' are substituted in the same manner as for the edge
414       label attribute.  Additionally the substring '\L' is  substituted  with
415       the edge label string.
416
417       headhref="url"  sets  the url for the head port in imagemap, PostScript
418       and SVG files.  The substrings '\T', '\H', '\E' and  '\G'  are  substi‐
419       tuted in the same manner as for the edge label attribute.  Additionally
420       the substring '\L' is substituted with the edge label string.
421
422       headURL="url" ("headURL" is a synonym for "headhref".)
423
424       headtarget="headtarget" is a target string  for  client‐side  imagemaps
425       and  SVG,  effective when edge heads have a URL.  The headtarget string
426       is used to determine which window of the browser is used for  the  URL.
427       If  the  headtarget  string  is  empty,  the  default,  then headtarget
428       defaults to the same value as target  for  the  edge.   The  substrings
429       '\T', '\H', '\E' and '\G' are substituted in the same manner as for the
430       edge label attribute.  Additionally the substring '\L'  is  substituted
431       with the edge label string.
432
433       headtooltip="tooltip"  is  a  tooltip  string for client‐side imagemaps
434       effective when head ports have a URL.  The tooltip string  defaults  to
435       be  the  same  as the headlabel string.  The substrings '\T', '\H', and
436       '\E' are  substituted  in  the  same  manner  as  for  the  edge  label
437       attribute.   Additionally  the  substring  '\L' is substituted with the
438       edge label string.
439
440       tailhref="url" sets the url for the tail port in  imagemap,  PostScript
441       and  SVG  files.   The substrings '\T', '\H', '\E' and '\G' are substi‐
442       tuted in the same manner as for the edge label attribute.  Additionally
443       the substring '\L' is substituted with the edge label string.
444
445       tailURL="url" ("tailURL" is a synonym for "tailhref".)
446
447       tailtarget="tailtarget"  is  a  target string for client‐side imagemaps
448       and SVG, effective when edge tails have a URL.  The  tailtarget  string
449       is  used  to determine which window of the browser is used for the URL.
450       If the  tailtarget  string  is  empty,  the  default,  then  tailtarget
451       defaults  to  the  same  value  as target for the edge.  The substrings
452       '\T', '\H', '\E' and '\G' are substituted in the same manner as for the
453       edge  label  attribute.  Additionally the substring '\L' is substituted
454       with the edge label string.
455
456       tailtooltip="tooltip" is a tooltip  string  for  client‐side  imagemaps
457       effective  when  tail ports have a URL.  The tooltip string defaults to
458       be the same as the taillabel string.  The substrings '\T',  '\H',  '\E'
459       and  '\G'  are  substituted  in  the  same manner as for the edge label
460       attribute.  Additionally the substring '\L'  is  substituted  with  the
461       edge label string.
462
463       labeldistance and port_label_distance set distance; also labelangle (in
464       degrees CCW)
465
466       decorate draws line from edge to label.
467
468       samehead,sametail aim edges having the same value  to  the  same  port,
469       using the average landing point.
470
471       constraint=false causes an edge to be ignored for rank assignment.
472
473       layer=id  or  id:id  or "all" sets the edge's active layers.  The empty
474       string means no layers (invisible).
475
476
477       (neato‐specific attributes)
478       w=f sets the weight (spring constant) of an edge to the given  floating
479       point  value.   The  default  is 1.0; greater values make the edge tend
480       more toward its optimal length.
481
482       len=f sets the optimal length of an edge.  The default is 1.0.
483
484       (fdp‐specific attributes)
485       weight=f sets the weight of an edge to the given floating point  value.
486       The  default  is 1.0; greater values make the edge tend more toward its
487       optimal length.
488

COMMAND LINE OPTIONS

490       -G sets a default graph attribute.
491       -N sets a default node attribute.
492       -E sets a default edge attribute.   Example:  -Gsize="7,8"  -Nshape=box
493       -Efontsize=8
494
495       -lfile  loads  custom  PostScript  library files.  Usually these define
496       custom shapes or styles.  If  -l  is  given  by  itself,  the  standard
497       library is omitted.
498
499       -Tlang sets the output language as described above.
500
501
502       -n[1|2]  (no‐op)  If  set,  neato assumes nodes have already been posi‐
503       tioned and all nodes have a pos attribute  giving  the  positions.   It
504       then  performs  an  optional  adjustment  to  remove node‐node overlap,
505       depending on the value of the overlap attribute, computes the edge lay‐
506       outs,  depending  on  the value of the splines attribute, and emits the
507       graph in the appropriate format.  If num  is  supplied,  the  following
508       actions occur:
509           num = 1
510       Equivalent to -n.
511           num > 1
512       Use node positions as specified, with no adjustment to remove node‐node
513       overlaps, and use  any  edge  layouts  already  specified  by  the  pos
514       attribute.   neato  computes  an edge layout for any edge that does not
515       have a pos attribute.  As usual, edge layout is guided by  the  splines
516       attribute.
517
518       -Klayout  override  the  default  layout  engine implied by the command
519       name.
520
521       -O automatically generate output filenames based on the input  filename
522       and the -T format.
523
524       -P generate a graph of the currently available plugins.
525
526       -v (verbose) prints various information useful for debugging.
527
528       -V (version) prints version information and exits.
529
530       -? prints the usage and exits.
531

EXAMPLES

533       digraph test123 {
534               a -> b -> c;
535               a -> {x y};
536               b [shape=box];
537               c [label="hello\nworld",color=blue,fontsize=24,
538                    fontname="Palatino-Italic",fontcolor=red,style=filled];
539               a -> z [label="hi", weight=100];
540               x -> z [label="multi-line\nlabel"];
541               edge [style=dashed,color=red];
542               b -> x;
543               {rank=same; b x}
544       }
545
546       graph test123 {
547               a -- b -- c;
548               a -- {x y};
549               x -- c [w=10.0];
550               x -- y [w=5.0,len=3];
551       }
552

CAVEATS

554       Edge splines can overlap unintentionally.
555
556       Flat  edge  labels  are  slightly broken.  Intercluster edge labels are
557       totally broken.
558
559       Because unconstrained optimization is employed, node boxes can possibly
560       overlap  or  touch unrelated edges.  All existing spring embedders seem
561       to have this limitation.
562
563       Apparently reasonable attempts to pin nodes or adjust edge lengths  and
564       weights can cause instability.
565

AUTHORS

567       Stephen C. North <north@research.att.com>
568       Emden R. Gansner <erg@research.att.com>
569       John C. Ellson <ellson@research.att.com>
570
571       The   bitmap   driver   (PNG,   GIF   etc)   is   by   Thomas  Boutell,
572       <http://www.boutell.com/gd>
573
574       The Truetype font renderer is from the Freetype Project (David  Turner,
575       Robert   Wilhelm,   and  Werner  Lemberg)  (who  can  be  contacted  at
576       freetype-devel@lists.lrz-muenchen.de).
577

SEE ALSO

579       This man page contains only a small amount of the  information  related
580       to  the  Graphviz layout programs. The most complete information can be
581       found at http://www.graphviz.org/Documentation.php, especially  in  the
582       on‐line  reference pages. Most of these documents are also available in
583       the doc and doc/info subtrees in the source and binary distributions.
584
585       dotty(1)
586       tcldot(n)
587       xcolors(1)
588       libgraph(3)
589
590       E. R. Gansner, S. C. North,  K.  P.  Vo,  "DAG  ‐  A  Program  to  Draw
591       Directed  Graphs",  Software ‐ Practice and Experience 17(1), 1988, pp.
592       1047‐1062.
593       E. R. Gansner, E. Koutsofios, S. C. North,  K. P. Vo, "A Technique  for
594       Drawing  Directed  Graphs,"  IEEE Trans. on Soft. Eng. 19(3), 1993, pp.
595       214‐230.
596       S. North and E.  Koutsofios,  "Applications  of  graph  visualization",
597       Graphics Interface 94, pp. 234‐245.
598       E.  Koutsofios and S. C. North, "Drawing Graphs with dot," Available on
599       research.att.com in dist/drawdag/dotguide.ps.Z.
600       S. C. North, "NEATO User's Manual".  Available on  research.att.com  in
601       dist/drawdag/neatodoc.ps.Z.
602
603
604
605                                23 August 2004                          DOT(1)
Impressum