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       patchwork - filter for squarified tree maps
13       osage - filter for array-based layouts
14

SYNOPSIS

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

DESCRIPTION

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

OUTPUT FORMATS

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 //http://www.graphviz.org/content/output-formats.
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

GRAPH FILE LANGUAGE

112       Here is a synopsis of the  graph  file  language,  normally  using  the
113       extension .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       http://www.graphviz.org/content/dot-language.
148

GRAPH, NODE AND EDGE ATTRIBUTES

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       http://www.graphviz.org/content/attrs.
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       http://www.graphviz.org/content/attrs#kcolor                        and
169       http://www.graphviz.org/content/color-names 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       http://www.graphviz.org/content/node-shapes#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
217       adjust 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
221       destroys symmetries.  If mode is true (the default),  no  repositioning
222       is 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
277       sequence 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 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
312       automatically loaded for the node shape.
313
314       See http://www.graphviz.org/content/node-shapes for a complete descrip‐
315       tion 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
336       attribute.  Additionally the substring '\L'  is  substituted  with  the
337       node label 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
342       labels 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
351       aspect ratio of the label.  builtin_polygons that are not already regu‐
352       lar are made regular by  this  attribute.   builtin_polygons  that  are
353       already  regular  are  not affected (i.e.  they cannot be made asymmet‐
354       ric).
355
356       peripheries=n sets the number of periphery lines drawn around the poly‐
357       gon.    This   value  supersedes  the  number  of  periphery  lines  of
358       builtin_polygons.
359
360       sides=n sets the number of sides to the  polygon.  n<3  results  in  an
361       ellipse.  This attribute is ignored by builtin_polygons.
362
363       orientation=f  sets  the  orientation  of the first apex of the polygon
364       counterclockwise from the vertical, in degrees.  f may  be  a  floating
365       point  number.   The  orientation  of  labels  is  not affected by this
366       attribute.  This attribute is  added  to  the  initial  orientation  of
367       builtin_polygons.
368
369       distortion=f  sets the amount of broadening of the top and narrowing of
370       the bottom of the polygon  (relative  to  its  orientation).   Floating
371       point  values  between  -1  and  +1  are  suggested.  This attribute is
372       ignored by builtin_polygons.
373
374       skew=f sets the amount of right‐displacement of the top  and  left‐dis‐
375       placement  of  the bottom of the polygon (relative to its orientation).
376       Floating point values between -1 and +1 are suggested.  This  attribute
377       is ignored by builtin_polygons.
378
379
380       (circo‐specific attributes)
381       root=true/false.  This  specifies  that  the block containing the given
382       node be treated as the root of the spanning tree in the layout.
383
384
385       (neato‐ and fdp‐specific attributes)
386       pin=val. If val is true, the node will remain at its initial position.
387
388
389  Edge Attributes
390       weight=val where val is the cost of the edge.  For dot, weights must be
391       non-negative integers.  Values greater than 1 tend to shorten the edge;
392       weight 0 flat edges are ignored for ordering nodes.  In twopi, a weight
393       of  0  will cause the edge to be ignored in constructing the underlying
394       spanning tree. For neato and fdp, a heavier weight will put more empha‐
395       sis  on the algorithm achieving an edge length closer to that specified
396       by the edge's len attribute.
397
398       style=solid dashed dotted bold invis
399
400       color=colorvalue sets the line color for edges.
401
402       color=colorvaluelist a ':' separated list of colorvalue creates  paral‐
403       lel edges, one edge for each color.
404
405       dir=forward back both none controls arrow direction.
406
407       tailclip,headclip=false disables endpoint shape clipping.
408
409       target="text"  is  a  target  string for client‐side imagemaps and SVG,
410       effective when edges have a URL.  If the target string  is  empty,  the
411       default,  then no target attribute is included in the output.  The sub‐
412       strings '\T', '\H', '\E' and '\G' are substituted in the same manner as
413       for  the edge label attribute.  Additionally the substring '\L' is sub‐
414       stituted with the edge label string.
415
416       tooltip="text" is a tooltip string for client‐side imagemaps  effective
417       when  edges  have a URL.  The tooltip string defaults to be the same as
418       the edge label string.  The substrings '\T', '\H', '\E'  and  '\G'  are
419       substituted  in the same manner as for the edge label attribute.  Addi‐
420       tionally the substring '\L' is substituted with the edge label string.
421
422       arrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot, tee,
423       empty,  invempty,  open,  halfopen, diamond, odiamond, box, obox, crow.
424       Specifies the shape of the glyph occurring where the edge  touches  the
425       head  or  tail  node,  respectively.  Note that this only specifies the
426       shape. The dir attribute determines whether or not the glyph is drawn.
427
428       arrowsize=val specifies a multiplicative scale factor for the  size  of
429       the arrowhead.  inv_length=6,inv_width=7,dot_radius=2)
430
431       headlabel,taillabel=text  for  labels  appearing near the head and tail
432       nodes of an edge.   labelfontcolor,  labelfontname,  labelfontsize  for
433       head  and  tail  labels.   The substrings '\T', '\H', '\E' and '\G' are
434       substituted in the same manner as for the edge label attribute.   Addi‐
435       tionally the substring '\L' is substituted with the edge label string.
436
437       headhref="url"  sets  the url for the head port in imagemap, PostScript
438       and SVG files.  The substrings '\T', '\H', '\E' and  '\G'  are  substi‐
439       tuted in the same manner as for the edge label attribute.  Additionally
440       the substring '\L' is substituted with the edge label string.
441
442       headURL="url" (headURL is a synonym for headhref.)
443
444       headtarget="headtarget" is a target string  for  client‐side  imagemaps
445       and  SVG,  effective when edge heads have a URL.  The headtarget string
446       is used to determine which window of the browser is used for  the  URL.
447       If  the  headtarget  string  is  empty,  the  default,  then headtarget
448       defaults to the same value as target  for  the  edge.   The  substrings
449       '\T', '\H', '\E' and '\G' are substituted in the same manner as for the
450       edge label attribute.  Additionally the substring '\L'  is  substituted
451       with the edge label string.
452
453       headtooltip="tooltip"  is  a  tooltip  string for client‐side imagemaps
454       effective when head ports have a URL.  The tooltip string  defaults  to
455       be  the  same  as the headlabel string.  The substrings '\T', '\H', and
456       '\E' are  substituted  in  the  same  manner  as  for  the  edge  label
457       attribute.   Additionally  the  substring  '\L' is substituted with the
458       edge label string.
459
460       tailhref="url" sets the url for the tail port in  imagemap,  PostScript
461       and  SVG  files.   The substrings '\T', '\H', '\E' and '\G' are substi‐
462       tuted in the same manner as for the edge label attribute.  Additionally
463       the substring '\L' is substituted with the edge label string.
464
465       tailURL="url" (tailURL is a synonym for tailhref.)
466
467       tailtarget="tailtarget"  is  a  target string for client‐side imagemaps
468       and SVG, effective when edge tails have a URL.  The  tailtarget  string
469       is  used  to determine which window of the browser is used for the URL.
470       If the  tailtarget  string  is  empty,  the  default,  then  tailtarget
471       defaults  to  the  same  value  as target for the edge.  The substrings
472       '\T', '\H', '\E' and '\G' are substituted in the same manner as for the
473       edge  label  attribute.  Additionally the substring '\L' is substituted
474       with the edge label string.
475
476       tailtooltip="tooltip" is a tooltip  string  for  client‐side  imagemaps
477       effective  when  tail ports have a URL.  The tooltip string defaults to
478       be the same as the taillabel string.  The substrings '\T',  '\H',  '\E'
479       and  '\G'  are  substituted  in  the  same manner as for the edge label
480       attribute.  Additionally the substring '\L'  is  substituted  with  the
481       edge label string.
482
483       labeldistance  and labelangle (in degrees CCW) specify the placement of
484       head and tail labels.
485
486       decorate draws line from edge to label.
487
488       samehead,sametail aim edges having the same value  to  the  same  port,
489       using the average landing point.
490
491
492       (dot‐specific attributes)
493       constraint=false causes an edge to be ignored for rank assignment.
494
495       minlen=n  where  n is an integer factor that applies to the edge length
496       (ranks for normal edges, or minimum node separation for flat edges).
497
498       xlabel="text" Edge labels in dot are treated as special types of nodes,
499       with  space  allocated  for them during node layout. This can sometimes
500       deform the edge routing. If an xlabel is used  instead,  the  label  is
501       placed  after  all  nodes and edges have been positioned. In turn, this
502       may mean that there is some overlap among the labels.
503
504       (neato and fdp‐specific attributes)
505       len=f sets the optimal length of an edge.  The default is 1.0.
506

COMMAND‐LINE OPTIONS

508       -G sets a default graph attribute.
509       -N sets a default node attribute.
510       -E sets a default edge attribute.   Example:  -Gsize="7,8"  -Nshape=box
511       -Efontsize=8
512
513       -lfile  loads  custom  PostScript  library files.  Usually these define
514       custom shapes or styles.  If  -l  is  given  by  itself,  the  standard
515       library is omitted.
516
517       -Tlang sets the output language as described above.
518
519
520       -n[1|2]  (no‐op)  If  set,  neato assumes nodes have already been posi‐
521       tioned and all nodes have a pos attribute  giving  the  positions.   It
522       then  performs  an  optional  adjustment  to  remove node‐node overlap,
523       depending on the value of the overlap attribute, computes the edge lay‐
524       outs,  depending  on  the value of the splines attribute, and emits the
525       graph in the appropriate format.  If num  is  supplied,  the  following
526       actions occur:
527           num = 1
528       Equivalent to -n.
529           num > 1
530       Use node positions as specified, with no adjustment to remove node‐node
531       overlaps, and use  any  edge  layouts  already  specified  by  the  pos
532       attribute.   neato  computes  an edge layout for any edge that does not
533       have a pos attribute.  As usual, edge layout is guided by  the  splines
534       attribute.
535
536       -Klayout  override  the  default  layout  engine implied by the command
537       name.
538
539       -O automatically generate output filenames based on the input  filename
540       and the -T format.
541
542       -P generate a graph of the currently available plugins.
543
544       -v (verbose) prints various information useful for debugging.
545
546       -c configure plugins.
547
548       -m memory test (observe no growth with top, kill when done).
549
550       -qlevel set level of message suppression. The default is 1.
551
552       -sfscale scale input by fscale, the default is 72.
553
554       -y invert y coordinate in output.
555
556       -V (version) prints version information and exits.
557
558       -? prints the usage and exits.
559
560       A  complete  description  of  the available command‐line options can be
561       found at https://www.graphviz.org/doc/info/command.html.
562

EXAMPLES

564       digraph test123 {
565               a -> b -> c;
566               a -> {x y};
567               b [shape=box];
568               c [label="hello\nworld",color=blue,fontsize=24,
569                    fontname="Palatino-Italic",fontcolor=red,style=filled];
570               a -> z [label="hi", weight=100];
571               x -> z [label="multi-line\nlabel"];
572               edge [style=dashed,color=red];
573               b -> x;
574               {rank=same; b x}
575       }
576
577       graph test123 {
578               a -- b -- c;
579               a -- {x y};
580               x -- c [w=10.0];
581               x -- y [w=5.0,len=3];
582       }
583

CAVEATS

585       Edge splines can overlap unintentionally.
586
587       Flat edge labels are slightly broken.   Intercluster  edge  labels  are
588       totally broken.
589
590       Because unconstrained optimization is employed, node boxes can possibly
591       overlap or touch unrelated edges.  All existing spring  embedders  seem
592       to have this limitation.
593
594       Apparently  reasonable attempts to pin nodes or adjust edge lengths and
595       weights can cause instability.
596

AUTHORS

598       Stephen C. North <north@research.att.com>
599       Emden R. Gansner <erg@graphviz.org>
600       John C. Ellson <ellson@research.att.com>
601       Yifan Hu <yifanhu@yahoo.com>
602
603       The  bitmap   driver   (PNG,   GIF   etc)   is   by   Thomas   Boutell,
604       <http://www.boutell.com/gd>
605
606       The  Truetype font renderer is from the Freetype Project (David Turner,
607       Robert  Wilhelm,  and  Werner  Lemberg)  (who  can  be   contacted   at
608       freetype-devel@lists.lrz-muenchen.de).
609

SEE ALSO

611       This  man  page contains only a small amount of the information related
612       to the Graphviz layout programs. The most complete information  can  be
613       found  at  http://www.graphviz.org/Documentation.php, especially in the
614       on‐line reference pages. Most of these documents are also available  in
615       the doc and doc/info subtrees in the source and binary distributions.
616
617       dotty(1)
618       tcldot(n)
619       xcolors(1)
620       libcgraph(3)
621
622       E.  R.  Gansner,  S.  C.  North,   K.  P.  Vo, "DAG ‐ A Program to Draw
623       Directed Graphs", Software ‐ Practice and Experience 17(1),  1988,  pp.
624       1047‐1062.
625       E.  R. Gansner, E. Koutsofios, S. C. North,  K. P. Vo, "A Technique for
626       Drawing Directed Graphs," IEEE Trans. on Soft. Eng.  19(3),  1993,  pp.
627       214‐230.
628       S.  North  and  E.  Koutsofios,  "Applications of graph visualization",
629       Graphics Interface 94, pp. 234‐245.
630       E. R. Gansner and E. Koutsofios and S. C. North, "Drawing  Graphs  with
631       dot," Available at http://www.graphviz.org/pdf/dotguide.pdf.
632       S.      C.     North,     "NEATO     User's     Manual".      Available
633       http://www.graphviz.org/pdf/neatoguide.pdf.
634       E. R. Gansner and Y. Hu, "Efficient, Proximity-Preserving Node  Overlap
635       Removal", J. Graph Algorithms Appl., 14(1) pp. 53‐74, 2010.
636
637
638
639
640                                12 January 2015                         DOT(1)
Impressum