wolffd@0
|
1 .TH DOT 1 "23 August 2004" \*(eX
|
wolffd@0
|
2 .SH NAME
|
wolffd@0
|
3 dot \- filter for drawing directed graphs
|
wolffd@0
|
4 .br
|
wolffd@0
|
5 neato \- filter for drawing undirected graphs
|
wolffd@0
|
6 .br
|
wolffd@0
|
7 twopi \- filter for radial layouts of graphs
|
wolffd@0
|
8 .br
|
wolffd@0
|
9 circo \- filter for circular layout of graphs
|
wolffd@0
|
10 .br
|
wolffd@0
|
11 fdp \- filter for drawing undirected graphs
|
wolffd@0
|
12 .br
|
wolffd@0
|
13 sfdp \- filter for drawing large undirected graphs
|
wolffd@0
|
14 .SH SYNOPSIS
|
wolffd@0
|
15 \fBdot\fR
|
wolffd@0
|
16 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
|
wolffd@0
|
17 [\fB\-T\fIlang\fR]
|
wolffd@0
|
18 [\fB\-l\fIlibfile\fR]
|
wolffd@0
|
19 [\fB\-o\fIoutfile\fR]
|
wolffd@0
|
20 [\fB\-K\fIlayout\fR]
|
wolffd@0
|
21 [\fB\-O\fR]
|
wolffd@0
|
22 [\fB\-P\fR]
|
wolffd@0
|
23 [\fB\-v\fR]
|
wolffd@0
|
24 [\fB\-V\fR]
|
wolffd@0
|
25 [files]
|
wolffd@0
|
26 .br
|
wolffd@0
|
27 \fBneato\fR
|
wolffd@0
|
28 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
|
wolffd@0
|
29 [\fB\-T\fIlang\fR]
|
wolffd@0
|
30 [\fB\-l\fIlibfile\fR]
|
wolffd@0
|
31 [\fB\-n\fR[\fB1\fR|\fB2\fR]]
|
wolffd@0
|
32 [\fB\-o\fIoutfile\fR]
|
wolffd@0
|
33 [\fB\-K\fIlayout\fR]
|
wolffd@0
|
34 [\fB\-O\fR]
|
wolffd@0
|
35 [\fB\-P\fR]
|
wolffd@0
|
36 [\fB\-v\fR]
|
wolffd@0
|
37 [\fB\-V\fR]
|
wolffd@0
|
38 [files]
|
wolffd@0
|
39 .br
|
wolffd@0
|
40 \fBtwopi\fR
|
wolffd@0
|
41 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
|
wolffd@0
|
42 [\fB\-T\fIlang\fR]
|
wolffd@0
|
43 [\fB\-l\fIlibfile\fR]
|
wolffd@0
|
44 [\fB\-o\fIoutfile\fR]
|
wolffd@0
|
45 [\fB\-K\fIlayout\fR]
|
wolffd@0
|
46 [\fB\-O\fR]
|
wolffd@0
|
47 [\fB\-P\fR]
|
wolffd@0
|
48 [\fB\-v\fR]
|
wolffd@0
|
49 [\fB\-V\fR]
|
wolffd@0
|
50 [files]
|
wolffd@0
|
51 .br
|
wolffd@0
|
52 \fBcirco\fR
|
wolffd@0
|
53 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
|
wolffd@0
|
54 [\fB\-T\fIlang\fR]
|
wolffd@0
|
55 [\fB\-l\fIlibfile\fR]
|
wolffd@0
|
56 [\fB\-o\fIoutfile\fR]
|
wolffd@0
|
57 [\fB\-K\fIlayout\fR]
|
wolffd@0
|
58 [\fB\-O\fR]
|
wolffd@0
|
59 [\fB\-P\fR]
|
wolffd@0
|
60 [\fB\-v\fR]
|
wolffd@0
|
61 [\fB\-V\fR]
|
wolffd@0
|
62 [files]
|
wolffd@0
|
63 .br
|
wolffd@0
|
64 \fBfdp\fR
|
wolffd@0
|
65 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
|
wolffd@0
|
66 [\fB\-T\fIlang\fR]
|
wolffd@0
|
67 [\fB\-l\fIlibfile\fR]
|
wolffd@0
|
68 [\fB\-o\fIoutfile\fR]
|
wolffd@0
|
69 [\fB\-K\fIlayout\fR]
|
wolffd@0
|
70 [\fB\-O\fR]
|
wolffd@0
|
71 [\fB\-P\fR]
|
wolffd@0
|
72 [\fB\-v\fR]
|
wolffd@0
|
73 [\fB\-V\fR]
|
wolffd@0
|
74 [files]
|
wolffd@0
|
75 .br
|
wolffd@0
|
76 \fBsfdp\fR
|
wolffd@0
|
77 [\fB\-\fR(\fBG\fR|\fBN\fR|\fBE\fR)\fIname=value\fR]
|
wolffd@0
|
78 [\fB\-T\fIlang\fR]
|
wolffd@0
|
79 [\fB\-l\fIlibfile\fR]
|
wolffd@0
|
80 [\fB\-o\fIoutfile\fR]
|
wolffd@0
|
81 [\fB\-K\fIlayout\fR]
|
wolffd@0
|
82 [\fB\-O\fR]
|
wolffd@0
|
83 [\fB\-P\fR]
|
wolffd@0
|
84 [\fB\-v\fR]
|
wolffd@0
|
85 [\fB\-V\fR]
|
wolffd@0
|
86 [files]
|
wolffd@0
|
87 .SH DESCRIPTION
|
wolffd@0
|
88 .I dot
|
wolffd@0
|
89 draws directed graphs. It works well on DAGs and other graphs
|
wolffd@0
|
90 that can be drawn as hierarchies.
|
wolffd@0
|
91 It reads attributed graph files and writes drawings.
|
wolffd@0
|
92 By default, the output format
|
wolffd@0
|
93 .I dot
|
wolffd@0
|
94 is the input file with layout coordinates appended.
|
wolffd@0
|
95 .PP
|
wolffd@0
|
96 .I neato
|
wolffd@0
|
97 draws undirected graphs using ``spring'' models (see Kamada and Kawai,
|
wolffd@0
|
98 Information Processing Letters 31:1, April 1989). Input files must be
|
wolffd@0
|
99 formatted in the
|
wolffd@0
|
100 .I dot
|
wolffd@0
|
101 attributed graph language.
|
wolffd@0
|
102 By default, the output of
|
wolffd@0
|
103 .I neato
|
wolffd@0
|
104 is the input graph with layout coordinates appended.
|
wolffd@0
|
105 .PP
|
wolffd@0
|
106 .I twopi
|
wolffd@0
|
107 draws graphs using a radial layout (see G. Wills,
|
wolffd@0
|
108 Symposium on Graph Drawing GD'97, September, 1997).
|
wolffd@0
|
109 Basically, one node is chosen as the center and put at the origin.
|
wolffd@0
|
110 The remaining nodes are placed on a sequence of concentric circles
|
wolffd@0
|
111 centered about the origin, each a fixed radial distance from the
|
wolffd@0
|
112 previous circle.
|
wolffd@0
|
113 All nodes distance 1 from the center are placed on the first circle;
|
wolffd@0
|
114 all nodes distance 1 from a node on the first circle are placed on
|
wolffd@0
|
115 the second circle; and so forth.
|
wolffd@0
|
116 .PP
|
wolffd@0
|
117 .I circo
|
wolffd@0
|
118 draws graphs using a circular layout (see
|
wolffd@0
|
119 Six and Tollis, GD '99 and ALENEX '99, and
|
wolffd@0
|
120 Kaufmann and Wiese, GD '02.)
|
wolffd@0
|
121 The tool identifies biconnected components and draws the nodes of
|
wolffd@0
|
122 the component on a circle. The block\(hycutpoint tree
|
wolffd@0
|
123 is then laid out using a recursive radial algorithm. Edge
|
wolffd@0
|
124 crossings within a circle are minimized by placing as many edges on
|
wolffd@0
|
125 the circle's perimeter as possible.
|
wolffd@0
|
126 In particular, if the component is outerplanar, the component will
|
wolffd@0
|
127 have a planar layout.
|
wolffd@0
|
128 .PP
|
wolffd@0
|
129 If a node belongs to multiple non\(hytrivial biconnected components,
|
wolffd@0
|
130 the layout puts the node in one of them. By default, this is the first
|
wolffd@0
|
131 non\(hytrivial component found in the search from the root component.
|
wolffd@0
|
132 .PP
|
wolffd@0
|
133 .I fdp
|
wolffd@0
|
134 draws undirected graphs using a ``spring'' model. It relies on a
|
wolffd@0
|
135 force\(hydirected approach in the spirit of Fruchterman and Reingold
|
wolffd@0
|
136 (cf. Software\(hyPractice & Experience 21(11), 1991, pp. 1129\(hy1164).
|
wolffd@0
|
137 .PP
|
wolffd@0
|
138 .I sfdp
|
wolffd@0
|
139 also draws undirected graphs using the ``spring'' model described
|
wolffd@0
|
140 above, but it uses a multi-scale approach to produce layouts
|
wolffd@0
|
141 of large graphs in a reasonably short time.
|
wolffd@0
|
142 .SH OUTPUT FORMATS
|
wolffd@0
|
143 Dot uses an extensible plugin mechanism for its output renderers,
|
wolffd@0
|
144 so to see what output formats your installation of dot supports
|
wolffd@0
|
145 you can use ``dot \-Txxx'' (where xxx is an unlikely format)
|
wolffd@0
|
146 and check the warning message.
|
wolffd@0
|
147 Also, The plugin mechanism supports multiple implementations
|
wolffd@0
|
148 of the output formats.
|
wolffd@0
|
149 To see what variants are available, use, for example: ``dot \-Tpng:''
|
wolffd@0
|
150 and to force a particular variant, use, for example: ``dot \-Tpng:gd''
|
wolffd@0
|
151 .P
|
wolffd@0
|
152 Traditionally, dot supports the following:
|
wolffd@0
|
153 \fB\-Tps\fP (PostScript),
|
wolffd@0
|
154 \fB\-Tsvg\fP \fB\-Tsvgz\fP (Structured Vector Graphics),
|
wolffd@0
|
155 \fB\-Tfig\fP (XFIG graphics),
|
wolffd@0
|
156 \fB\-Tmif\fP (FrameMaker graphics),
|
wolffd@0
|
157 \fB\-Thpgl\fP (HP pen plotters), and \fB\-Tpcl\fP (Laserjet printers),
|
wolffd@0
|
158 \fB\-Tpng\fP \fB\-Tgif\fP (bitmap graphics),
|
wolffd@0
|
159 \fB\-Tdia\fP (GTK+ based diagrams),
|
wolffd@0
|
160 \fB\-Timap\fP (imagemap files for httpd servers for each node or edge
|
wolffd@0
|
161 that has a non\(hynull "href" attribute.),
|
wolffd@0
|
162 \fB\-Tcmapx\fP (client\(hyside imagemap for use in html and xhtml).
|
wolffd@0
|
163 Additional less common or more special\(hypurpose output formats
|
wolffd@0
|
164 can be found at http://www.graphviz.org/cvs/doc/info/output.html.)
|
wolffd@0
|
165 .P
|
wolffd@0
|
166 Alternative plugins providing support for a given output format
|
wolffd@0
|
167 can be found from the error message resulting from appending a ':' to the format. e.g. \fB-Tpng:\fP
|
wolffd@0
|
168 The first plugin listed is always the default.
|
wolffd@0
|
169 .P
|
wolffd@0
|
170 The \fB\-P\fP switch can be used to produce a graph of all output variants supported by plugins in the local installation of graphviz.
|
wolffd@0
|
171 .SH GRAPH FILE LANGUAGE
|
wolffd@0
|
172 Here is a synopsis of the graph file language, traditionally using the extension \fB.dot\fR, for graphs:
|
wolffd@0
|
173 .PP
|
wolffd@0
|
174 [\fBstrict\fR] (\fBgraph\fR|\fBdigraph\fR) \fIname\fP { \fIstatement\(hylist\fP }\fR
|
wolffd@0
|
175 .br
|
wolffd@0
|
176 Is the top level graph. If the graph is \fBstrict\fR then multiple edges are
|
wolffd@0
|
177 not allowed between the same pairs of nodes.
|
wolffd@0
|
178 If it is a directed graph, indicated by \fBdigraph\fR,
|
wolffd@0
|
179 then the \fIedgeop\fR must be "\->". If it is an undirected \fBgraph\fR
|
wolffd@0
|
180 then the \fIedgeop\fR must be "\-\-".
|
wolffd@0
|
181 Statements may be:
|
wolffd@0
|
182 .PP
|
wolffd@0
|
183 \fIname\fB=\fIval\fB;\fR
|
wolffd@0
|
184 .br
|
wolffd@0
|
185 \fBnode [\fIname\fB=\fIval\fB];\fR
|
wolffd@0
|
186 .br
|
wolffd@0
|
187 \fBedge [\fIname\fB=\fIval\fB];\fR
|
wolffd@0
|
188 .br
|
wolffd@0
|
189 Set default graph, node, or edge attribute \fIname\fP to \fIval\fP.
|
wolffd@0
|
190 Any subgraph, node, or edge appearing after this inherits the new
|
wolffd@0
|
191 default attributes.
|
wolffd@0
|
192 .PP
|
wolffd@0
|
193 \fBn0 [\fIname0=val0,name1=val1,...\fB];\fR
|
wolffd@0
|
194 Creates node \fBn0\fP (if it does not already exist)
|
wolffd@0
|
195 and sets its attributes according to the optional list.
|
wolffd@0
|
196 .PP
|
wolffd@0
|
197 \fBn0 \fIedgeop\fR n1 \fIedgeop\fR \fI...\fB \fIedgeop\fR nn [\fIname0=val0,name1=val1,...\fB];\fR
|
wolffd@0
|
198 .br
|
wolffd@0
|
199 Creates edges between nodes \fBn0\fP, \fBn1\fP, ..., \fBnn\fP and sets
|
wolffd@0
|
200 their attributes according to the optional list.
|
wolffd@0
|
201 Creates nodes as necessary.
|
wolffd@0
|
202 .PP
|
wolffd@0
|
203 [\fBsubgraph \fIname\fB] { \fIstatement\(hylist \fB}\fR
|
wolffd@0
|
204 .br
|
wolffd@0
|
205 Creates a subgraph. Subgraphs may be used in place
|
wolffd@0
|
206 of \fBn0\fP, ..., \fBnn\fP in the above statements to create edges.
|
wolffd@0
|
207 [\fBsubgraph \fIname\fR] is optional;
|
wolffd@0
|
208 if missing, the subgraph is assigned an internal name.
|
wolffd@0
|
209 .PP
|
wolffd@0
|
210 Comments may be /*C\(hylike*/ or //C++\(hylike.
|
wolffd@0
|
211
|
wolffd@0
|
212 .PP
|
wolffd@0
|
213 Attribute names and values are ordinary (C\(hystyle) strings.
|
wolffd@0
|
214 The following sections describe attributes that control graph layout.
|
wolffd@0
|
215
|
wolffd@0
|
216 .SH "GRAPH ATTRIBUTES"
|
wolffd@0
|
217 .PP
|
wolffd@0
|
218 \fBsize="\fIx,y\fP"\fR sets bounding box of drawing in inches.
|
wolffd@0
|
219 .PP
|
wolffd@0
|
220 \fBpage="\fIx,y\fP"\fR sets the PostScript pagination unit.
|
wolffd@0
|
221 .PP
|
wolffd@0
|
222 \fBratio=\fIf\fR sets the aspect ratio to \fIf\fP which may be
|
wolffd@0
|
223 a floating point number, or one of the keywords \fBfill\fP,
|
wolffd@0
|
224 \fBcompress\fP, or \fBauto\fP.
|
wolffd@0
|
225 .PP
|
wolffd@0
|
226 \fBlayout=\fIengine\fR indicates the preferred layout engine ("dot", "neato", fdp" etc) overriding the default from the basename of the command or the -K commandline option.
|
wolffd@0
|
227 .PP
|
wolffd@0
|
228 \fBmargin=\fIf\fR sets the page margin (included in the page size).
|
wolffd@0
|
229 .PP
|
wolffd@0
|
230 \fBnodesep=\fIf\fR sets the minimum separation between nodes.
|
wolffd@0
|
231 .PP
|
wolffd@0
|
232 \fBranksep=\fIf\fR sets the minimum separation between ranks.
|
wolffd@0
|
233 .PP
|
wolffd@0
|
234 \fBordering=out\fR constrains order of out\(hyedges in a subgraph
|
wolffd@0
|
235 according to their file sequence.
|
wolffd@0
|
236 .PP
|
wolffd@0
|
237 \fBrankdir=LR|RL|BT\fR requests a left\(hyto\(hyright, right\(hyto\(hyleft, or bottom\(hyto\(hytop, drawing.
|
wolffd@0
|
238 .PP
|
wolffd@0
|
239 \fBpagedir=\fR[TBLR][TBLR] sets the major and minor order of pagination.
|
wolffd@0
|
240 .PP
|
wolffd@0
|
241 \fBrank=same\fR (or \fBmin\fP or \fBmax\fP) in a subgraph
|
wolffd@0
|
242 constrains the rank assignment of its nodes. If a subgraph's
|
wolffd@0
|
243 name has the prefix \fBcluster\fP, its nodes are drawn in
|
wolffd@0
|
244 a distinct rectangle of the layout. Clusters may be nested.
|
wolffd@0
|
245 .PP
|
wolffd@0
|
246 \fBrotate=90\fR sets landscape mode.
|
wolffd@0
|
247 (\fBorientation=land\fR is backward compatible but obsolete.)
|
wolffd@0
|
248 .PP
|
wolffd@0
|
249 \fBcenter=\fIn\fR a non\(hyzero value centers the drawing on the page.
|
wolffd@0
|
250 .PP
|
wolffd@0
|
251 \fBnslimit=\fIf\fR or \fBmclimit=\fIf\fR adjusts the bound on the
|
wolffd@0
|
252 number of network simplex or mincross iterations by the given ratio.
|
wolffd@0
|
253 For example, \fBmclimit=2.0\fP runs twice as long.
|
wolffd@0
|
254 .PP
|
wolffd@0
|
255 \fBlayers="\fIid:id:id:id\fR" is a sequence of layer identifiers for
|
wolffd@0
|
256 overlay diagrams. The PostScript array variable \fIlayercolorseq\fR
|
wolffd@0
|
257 sets the assignment of colors to layers. The least index is 1 and
|
wolffd@0
|
258 each element must be a 3\(hyelement array to be interpreted as a color coordinate.
|
wolffd@0
|
259 .PP
|
wolffd@0
|
260 \fBcolor=\fIcolorvalue\fR sets foreground color (\fBbgcolor\fP for background).
|
wolffd@0
|
261 .PP
|
wolffd@0
|
262 \fBhref=\fI"url"\fR the default url for image map files; in PostScript files,
|
wolffd@0
|
263 the base URL for all relative URLs, as recognized by Acrobat Distiller
|
wolffd@0
|
264 3.0 and up.
|
wolffd@0
|
265 .PP
|
wolffd@0
|
266 \fBURL=\fI"url"\fR ("URL" is a synonym for "href".)
|
wolffd@0
|
267 .PP
|
wolffd@0
|
268 \fBstylesheet=\fI"file.css"\fR includes a reference to a stylesheet
|
wolffd@0
|
269 in \-Tsvg and \-Tsvgz outputs. Ignored by other formats.
|
wolffd@0
|
270 .PP
|
wolffd@0
|
271 \fBsplines\fR. If set to \fItrue\fR, edges are
|
wolffd@0
|
272 drawn as splines.
|
wolffd@0
|
273 If set to \fIpolyline\fR, edges are
|
wolffd@0
|
274 drawn as polylines.
|
wolffd@0
|
275 If set to \fIortho\fR, edges are
|
wolffd@0
|
276 drawn as orthogonal polylines.
|
wolffd@0
|
277 In all of these cases, the nodes may not overlap.
|
wolffd@0
|
278 If \fBsplines=\fIfalse\fR or \fBsplines=\fIline\fR, edges are
|
wolffd@0
|
279 drawn as line segments.
|
wolffd@0
|
280 The default is \fItrue\fR for dot, and \fIfalse\fR for all other layouts.
|
wolffd@0
|
281
|
wolffd@0
|
282 .PP
|
wolffd@0
|
283 \fB(neato\(hyspecific attributes)\fR
|
wolffd@0
|
284 .br
|
wolffd@0
|
285 \fBstart=\fIval\fR. Requests random initial placement and seeds
|
wolffd@0
|
286 the random number generator. If \fIval\fP is not an integer,
|
wolffd@0
|
287 the process ID or current time is used as the seed.
|
wolffd@0
|
288 .PP
|
wolffd@0
|
289 \fBepsilon=\fIn\fR. Sets the cutoff for the solver.
|
wolffd@0
|
290 The default is 0.1.
|
wolffd@0
|
291
|
wolffd@0
|
292 .PP
|
wolffd@0
|
293 \fB(twopi\(hyspecific attributes)\fR
|
wolffd@0
|
294 .br
|
wolffd@0
|
295 \fBroot=\fIctr\fR. This specifies the node to be used as the center of
|
wolffd@0
|
296 the layout. If not specified, \fItwopi\fP will randomly pick one of the
|
wolffd@0
|
297 nodes that are furthest from a leaf node, where a leaf node is a node
|
wolffd@0
|
298 of degree 1. If no leaf nodes exists, an arbitrary node is picked as center.
|
wolffd@0
|
299 .PP
|
wolffd@0
|
300 \fBranksep=\fIval\fR. Specifies the radial distance in inches between
|
wolffd@0
|
301 the sequence of rings. The default is 0.75.
|
wolffd@0
|
302 .PP
|
wolffd@0
|
303 \fBoverlap=\fImode\fR. This specifies what \fItwopi\fP should do if
|
wolffd@0
|
304 any nodes overlap. If mode is \fI"false"\fP, the program uses Voronoi
|
wolffd@0
|
305 diagrams to adjust the nodes to eliminate overlaps. If mode is \fI"scale"\fP,
|
wolffd@0
|
306 the layout is uniformly scaled up, preserving node sizes, until nodes no
|
wolffd@0
|
307 longer overlap. The latter technique removes overlaps while preserving
|
wolffd@0
|
308 symmetry and structure, while the former removes overlaps more compactly
|
wolffd@0
|
309 but destroys symmetries.
|
wolffd@0
|
310 If mode is \fI"true"\fP (the default), no repositioning is done.
|
wolffd@0
|
311
|
wolffd@0
|
312 .PP
|
wolffd@0
|
313 \fB(circo\(hyspecific attributes)\fR
|
wolffd@0
|
314 .br
|
wolffd@0
|
315 \fBroot=\fInodename\fR. Specifies the name of a node occurring in the
|
wolffd@0
|
316 root block. If the graph is disconnected, the \fBroot\fP node attribute
|
wolffd@0
|
317 can be used to specify additional root blocks.
|
wolffd@0
|
318 .PP
|
wolffd@0
|
319 \fBmindist=\fIvalue\fR. Sets the minimum separation between all nodes. If not
|
wolffd@0
|
320 specified then \fIcirco\fP uses a default value of 1.0.
|
wolffd@0
|
321
|
wolffd@0
|
322 .PP
|
wolffd@0
|
323 \fB(fdp\(hyspecific attributes)\fR
|
wolffd@0
|
324 .br
|
wolffd@0
|
325 \fBK=\fIval\fR. Sets the default ideal node separation
|
wolffd@0
|
326 in the layout.
|
wolffd@0
|
327 .PP
|
wolffd@0
|
328 \fBmaxiter=\fIval\fR. Sets the maximum number of iterations used to
|
wolffd@0
|
329 layout the graph.
|
wolffd@0
|
330 .PP
|
wolffd@0
|
331 \fBstart=\fIval\fR. Adjusts the random initial placement of nodes
|
wolffd@0
|
332 with no specified position. If \fIval\fP is is an integer,
|
wolffd@0
|
333 it is used as the seed for the random number generator.
|
wolffd@0
|
334 If \fIval\fP is not an integer, a random system\(hygenerated integer,
|
wolffd@0
|
335 such as the process ID or current time, is used as the seed.
|
wolffd@0
|
336 .PP
|
wolffd@0
|
337
|
wolffd@0
|
338 .SH "NODE ATTRIBUTES"
|
wolffd@0
|
339 .PP
|
wolffd@0
|
340 \fBheight=\fId\fR or \fBwidth=\fId\fR sets minimum height or width.
|
wolffd@0
|
341 Adding \fBfixedsize=true\fP forces these to be the actual size
|
wolffd@0
|
342 (text labels are ignored).
|
wolffd@0
|
343 .PP
|
wolffd@0
|
344 \fBshape=record polygon epsf \fIbuiltin_polygon\fR
|
wolffd@0
|
345 .br
|
wolffd@0
|
346 \fIbuiltin_polygon\fR is one of: \fBplaintext ellipse oval circle egg
|
wolffd@0
|
347 triangle box diamond trapezium parallelogram house hexagon octagon
|
wolffd@0
|
348 note tab box3d component.\fR
|
wolffd@0
|
349 (Polygons are defined or modified by the following node attributes:
|
wolffd@0
|
350 \fBregular\fR, \fBperipheries\fR, \fBsides\fR, \fBorientation\fR,
|
wolffd@0
|
351 \fBdistortion\fR and \fBskew\fR.) \fBepsf\fR uses the node's
|
wolffd@0
|
352 \fBshapefile\fR attribute as the path name of an external
|
wolffd@0
|
353 EPSF file to be automatically loaded for the node shape.
|
wolffd@0
|
354 .PP
|
wolffd@0
|
355 \fBlabel=\fItext\fR where \fItext\fP may include escaped newlines
|
wolffd@0
|
356 \\\|n, \\\|l, or \\\|r for center, left, and right justified lines.
|
wolffd@0
|
357 The string '\\N' value will be replaced by the node name.
|
wolffd@0
|
358 The string '\\G' value will be replaced by the graph name.
|
wolffd@0
|
359 Record labels may contain recursive box lists delimited by { | }.
|
wolffd@0
|
360 Port identifiers in labels are set off by angle brackets < >.
|
wolffd@0
|
361 In the graph file, use colon (such as, \fBnode0:port28\fR).
|
wolffd@0
|
362 .PP
|
wolffd@0
|
363 \fBfontsize=\fIn\fR sets the label type size to \fIn\fP points.
|
wolffd@0
|
364 .PP
|
wolffd@0
|
365 \fBfontname=\fIname\fR sets the label font family name.
|
wolffd@0
|
366 .PP
|
wolffd@0
|
367 \fBcolor=\fIcolorvalue\fR sets the outline color, and the default fill color
|
wolffd@0
|
368 if style=filled and \fBfillcolor\fR is not specified.
|
wolffd@0
|
369 .PP
|
wolffd@0
|
370 \fBfillcolor=\fIcolorvalue\fR sets the fill color
|
wolffd@0
|
371 when style=filled. If not specified, the fillcolor when style=filled defaults
|
wolffd@0
|
372 to be the same as the outline color.
|
wolffd@0
|
373 .PP
|
wolffd@0
|
374 \fBfontcolor=\fIcolorvalue\fR sets the label text color.
|
wolffd@0
|
375 .PP
|
wolffd@0
|
376 A \fIcolorvalue\fP may be "\fIh,s,v\fB"\fR (hue, saturation, brightness)
|
wolffd@0
|
377 floating point numbers between 0 and 1, or an X11 color name such as
|
wolffd@0
|
378 \fBwhite black red green blue yellow magenta cyan\fR or \fBburlywood\fR,
|
wolffd@0
|
379 or a "\fI#rrggbb" (red, green, blue, 2 hex characters each) value.
|
wolffd@0
|
380 .PP
|
wolffd@0
|
381 \fBstyle=filled solid dashed dotted bold invis\fP or any Postscript code.
|
wolffd@0
|
382 .PP
|
wolffd@0
|
383 \fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the node's active layers.
|
wolffd@0
|
384 The empty string means no layers (invisible).
|
wolffd@0
|
385 .PP
|
wolffd@0
|
386 The following attributes apply only to polygon shape nodes:
|
wolffd@0
|
387 .PP
|
wolffd@0
|
388 \fBregular=\fIn\fR if \fIn\fR is non\(hyzero then the polygon is made
|
wolffd@0
|
389 regular, i.e. symmetric about the x and y axis, otherwise the
|
wolffd@0
|
390 polygon takes on the aspect ratio of the label.
|
wolffd@0
|
391 \fIbuiltin_polygons\fR that are not already regular are made regular
|
wolffd@0
|
392 by this attribute.
|
wolffd@0
|
393 \fIbuiltin_polygons\fR that are already regular are not affected (i.e.
|
wolffd@0
|
394 they cannot be made asymmetric).
|
wolffd@0
|
395 .PP
|
wolffd@0
|
396 \fBperipheries=\fIn\fR sets the number of periphery lines drawn around
|
wolffd@0
|
397 the polygon. This value supersedes the number of periphery lines
|
wolffd@0
|
398 of \fIbuiltin_polygons\fR.
|
wolffd@0
|
399 .PP
|
wolffd@0
|
400 \fBsides=\fIn\fR sets the number of sides to the polygon. \fIn\fR<3
|
wolffd@0
|
401 results in an ellipse.
|
wolffd@0
|
402 This attribute is ignored by \fIbuiltin_polygons\fR.
|
wolffd@0
|
403 .PP
|
wolffd@0
|
404 \fBorientation=\fIf\fR sets the orientation of the first apex of the
|
wolffd@0
|
405 polygon counterclockwise from the vertical, in degrees.
|
wolffd@0
|
406 \fIf\fR may be a floating point number.
|
wolffd@0
|
407 The orientation of labels is not affected by this attribute.
|
wolffd@0
|
408 This attribute is added to the initial orientation of \fIbuiltin_polygons.\fR
|
wolffd@0
|
409 .PP
|
wolffd@0
|
410 \fBdistortion=\fIf\fR sets the amount of broadening of the top and
|
wolffd@0
|
411 narrowing of the bottom of the polygon (relative to its orientation).
|
wolffd@0
|
412 Floating point values between \-1 and +1 are suggested.
|
wolffd@0
|
413 This attribute is ignored by \fIbuiltin_polygons\fR.
|
wolffd@0
|
414 .PP
|
wolffd@0
|
415 \fBskew=\fIf\fR sets the amount of right\(hydisplacement of the top and
|
wolffd@0
|
416 left\(hydisplacement of the bottom of the polygon (relative to its
|
wolffd@0
|
417 orientation).
|
wolffd@0
|
418 Floating point values between \-1 and +1 are suggested.
|
wolffd@0
|
419 This attribute is ignored by \fIbuiltin_polygons\fR.
|
wolffd@0
|
420 .PP
|
wolffd@0
|
421 \fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG
|
wolffd@0
|
422 files.
|
wolffd@0
|
423 The substrings '\\N' and '\\G' are substituted in the same manner as
|
wolffd@0
|
424 for the node label attribute.
|
wolffd@0
|
425 Additionally the substring '\\L' is substituted with the node label string.
|
wolffd@0
|
426 .PP
|
wolffd@0
|
427 \fBURL=\fI"url"\fR ("URL" is a synonym for "href".)
|
wolffd@0
|
428 .PP
|
wolffd@0
|
429 \fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps
|
wolffd@0
|
430 and SVG, effective when nodes have a URL.
|
wolffd@0
|
431 The target string is used to determine which window of the browser is used
|
wolffd@0
|
432 for the URL. Setting it to "_graphviz" will open a new window if it doesn't
|
wolffd@0
|
433 already exist, or reuse it if it does.
|
wolffd@0
|
434 If the target string is empty, the default,
|
wolffd@0
|
435 then no target attribute is included in the output.
|
wolffd@0
|
436 The substrings '\\N' and '\\G' are substituted in the same manner as
|
wolffd@0
|
437 for the node label attribute.
|
wolffd@0
|
438 Additionally the substring '\\L' is substituted with the node label string.
|
wolffd@0
|
439 .PP
|
wolffd@0
|
440 \fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
|
wolffd@0
|
441 and SVG, effective when nodes have a URL. The tooltip string defaults to be the
|
wolffd@0
|
442 same as the label string, but this attribute permits nodes without
|
wolffd@0
|
443 labels to still have tooltips thus permitting denser graphs.
|
wolffd@0
|
444 The substrings '\\N' and '\\G' are substituted in the same manner as
|
wolffd@0
|
445 for the node label attribute.
|
wolffd@0
|
446 Additionally the substring '\\L' is substituted with the node label string.
|
wolffd@0
|
447
|
wolffd@0
|
448 .PP
|
wolffd@0
|
449 \fB(circo\(hyspecific attributes)\fR
|
wolffd@0
|
450 .br
|
wolffd@0
|
451 \fBroot=\fItrue/false\fR. This specifies that the block containing the given
|
wolffd@0
|
452 node be treated as the root of the spanning tree in the layout.
|
wolffd@0
|
453
|
wolffd@0
|
454 .PP
|
wolffd@0
|
455 \fB(fdp\(hyspecific attributes)\fR
|
wolffd@0
|
456 .br
|
wolffd@0
|
457 \fBpin=\fIval\fR. If \fIval\fR is "true", the node will remain at
|
wolffd@0
|
458 its initial position.
|
wolffd@0
|
459
|
wolffd@0
|
460 .SH "EDGE ATTRIBUTES"
|
wolffd@0
|
461 \fBminlen=\fIn\fR where \fIn\fP is an integer factor that applies
|
wolffd@0
|
462 to the edge length (ranks for normal edges, or minimum node separation
|
wolffd@0
|
463 for flat edges).
|
wolffd@0
|
464 .PP
|
wolffd@0
|
465 \fBweight=\fIn\fR where \fIn\fP is the integer cost of the edge.
|
wolffd@0
|
466 Values greater than 1 tend to shorten the edge. Weight 0 flat
|
wolffd@0
|
467 edges are ignored for ordering nodes.
|
wolffd@0
|
468 .PP
|
wolffd@0
|
469 \fBlabel=\fItext\fR where \fItext\fR may include escaped newlines
|
wolffd@0
|
470 \\\|n, \\\|l, or \\\|r for centered, left, or right justified lines.
|
wolffd@0
|
471 If the substring '\\T' is found in a label it will be replaced by the tail_node name.
|
wolffd@0
|
472 If the substring '\\H' is found in a label it will be replaced by the head_node name.
|
wolffd@0
|
473 If the substring '\\E' value is found in a label it will be replaced by: tail_node_name\->head_node_name
|
wolffd@0
|
474 If the substring '\\G' is found in a label it will be replaced by the graph name.
|
wolffd@0
|
475 or by: tail_node_name\-\-head_node_name for undirected graphs.
|
wolffd@0
|
476 .PP
|
wolffd@0
|
477 \fBfontsize=\fIn\fR sets the label type size to \fIn\fP points.
|
wolffd@0
|
478 .PP
|
wolffd@0
|
479 \fBfontname=\fIname\fR sets the label font family name.
|
wolffd@0
|
480 .PP
|
wolffd@0
|
481 \fBfontcolor=\fIcolorvalue\fR sets the label text color.
|
wolffd@0
|
482 .PP
|
wolffd@0
|
483 \fBstyle=solid dashed dotted bold invis\fP
|
wolffd@0
|
484 .PP
|
wolffd@0
|
485 \fBcolor=\fIcolorvalue\fR sets the line color for edges.
|
wolffd@0
|
486 .PP
|
wolffd@0
|
487 \fBcolor=\fIcolorvaluelist\fR a ':' separated list of \fIcolorvalue\fR creates
|
wolffd@0
|
488 parallel edges, one edge for each color.
|
wolffd@0
|
489 .PP
|
wolffd@0
|
490 \fBdir=forward back both none\fP controls arrow direction.
|
wolffd@0
|
491 .PP
|
wolffd@0
|
492 \fBtailclip,headclip=false\fP disables endpoint shape clipping.
|
wolffd@0
|
493 .PP
|
wolffd@0
|
494 \fBhref=\fI"url"\fR sets the url for the node in imagemap, PostScript and SVG
|
wolffd@0
|
495 files.
|
wolffd@0
|
496 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
497 for the edge label attribute.
|
wolffd@0
|
498 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
499 .PP
|
wolffd@0
|
500 \fBURL=\fI"url"\fR ("URL" is a synonym for "href".)
|
wolffd@0
|
501 .PP
|
wolffd@0
|
502 \fBtarget=\fI"target"\fR is a target string for client\(hyside imagemaps
|
wolffd@0
|
503 and SVG, effective when edges have a URL.
|
wolffd@0
|
504 If the target string is empty, the default,
|
wolffd@0
|
505 then no target attribute is included in the output.
|
wolffd@0
|
506 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
507 for the edge label attribute.
|
wolffd@0
|
508 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
509 .PP
|
wolffd@0
|
510 \fBtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
|
wolffd@0
|
511 effective when edges have a URL. The tooltip string defaults to be the
|
wolffd@0
|
512 same as the edge label string.
|
wolffd@0
|
513 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
514 for the edge label attribute.
|
wolffd@0
|
515 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
516 .PP
|
wolffd@0
|
517 \fBarrowhead,arrowtail=none, normal, inv, dot, odot, invdot, invodot,
|
wolffd@0
|
518 tee, empty, invempty, open, halfopen, diamond, odiamond, box, obox, crow\fP.
|
wolffd@0
|
519 .PP
|
wolffd@0
|
520 \fBarrowsize\fP (norm_length=10,norm_width=5,
|
wolffd@0
|
521 inv_length=6,inv_width=7,dot_radius=2)
|
wolffd@0
|
522 .PP
|
wolffd@0
|
523 \fBheadlabel,taillabel=string\fP for port labels.
|
wolffd@0
|
524 \fBlabelfontcolor\fP,\fBlabelfontname\fP,\fBlabelfontsize\fP
|
wolffd@0
|
525 for head and tail labels.
|
wolffd@0
|
526 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
527 for the edge label attribute.
|
wolffd@0
|
528 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
529 .PP
|
wolffd@0
|
530 \fBheadhref=\fI"url"\fR sets the url for the head port in imagemap, PostScript and SVG files.
|
wolffd@0
|
531 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
532 for the edge label attribute.
|
wolffd@0
|
533 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
534 .PP
|
wolffd@0
|
535 \fBheadURL=\fI"url"\fR ("headURL" is a synonym for "headhref".)
|
wolffd@0
|
536 .PP
|
wolffd@0
|
537 \fBheadtarget=\fI"headtarget"\fR is a target string for client\(hyside imagemaps
|
wolffd@0
|
538 and SVG, effective when edge heads have a URL.
|
wolffd@0
|
539 The headtarget string is used to determine which window of the browser is used
|
wolffd@0
|
540 for the URL. If the headtarget string is empty, the default,
|
wolffd@0
|
541 then headtarget defaults to the same value as target for the edge.
|
wolffd@0
|
542 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
543 for the edge label attribute.
|
wolffd@0
|
544 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
545 .PP
|
wolffd@0
|
546 \fBheadtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
|
wolffd@0
|
547 effective when head ports have a URL. The tooltip string defaults to be the
|
wolffd@0
|
548 same as the headlabel string.
|
wolffd@0
|
549 The substrings '\\T', '\\H', and '\\E' are substituted in the same manner as
|
wolffd@0
|
550 for the edge label attribute.
|
wolffd@0
|
551 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
552 .PP
|
wolffd@0
|
553 \fBtailhref=\fI"url"\fR sets the url for the tail port in imagemap, PostScript and SVG files.
|
wolffd@0
|
554 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
555 for the edge label attribute.
|
wolffd@0
|
556 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
557 .PP
|
wolffd@0
|
558 \fBtailURL=\fI"url"\fR ("tailURL" is a synonym for "tailhref".)
|
wolffd@0
|
559 .PP
|
wolffd@0
|
560 \fBtailtarget=\fI"tailtarget"\fR is a target string for client\(hyside imagemaps
|
wolffd@0
|
561 and SVG, effective when edge tails have a URL.
|
wolffd@0
|
562 The tailtarget string is used to determine which window of the browser is used
|
wolffd@0
|
563 for the URL. If the tailtarget string is empty, the default,
|
wolffd@0
|
564 then tailtarget defaults to the same value as target for the edge.
|
wolffd@0
|
565 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
566 for the edge label attribute.
|
wolffd@0
|
567 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
568 .PP
|
wolffd@0
|
569 \fBtailtooltip=\fI"tooltip"\fR is a tooltip string for client\(hyside imagemaps
|
wolffd@0
|
570 effective when tail ports have a URL. The tooltip string defaults to be the
|
wolffd@0
|
571 same as the taillabel string.
|
wolffd@0
|
572 The substrings '\\T', '\\H', '\\E' and '\\G' are substituted in the same manner as
|
wolffd@0
|
573 for the edge label attribute.
|
wolffd@0
|
574 Additionally the substring '\\L' is substituted with the edge label string.
|
wolffd@0
|
575 .PP
|
wolffd@0
|
576 \fBlabeldistance\fP and \fPport_label_distance\fP set distance; also
|
wolffd@0
|
577 \fBlabelangle\fP (in degrees CCW)
|
wolffd@0
|
578 .PP
|
wolffd@0
|
579 \fBdecorate\fP draws line from edge to label.
|
wolffd@0
|
580 .PP
|
wolffd@0
|
581 \fBsamehead,sametail\fP aim edges having the same value to the
|
wolffd@0
|
582 same port, using the average landing point.
|
wolffd@0
|
583 .PP
|
wolffd@0
|
584 \fBconstraint=false\fP causes an edge to be ignored for rank assignment.
|
wolffd@0
|
585 .PP
|
wolffd@0
|
586 \fBlayer=\fIid\fR or \fIid:id\fR or "all" sets the edge's active layers.
|
wolffd@0
|
587 The empty string means no layers (invisible).
|
wolffd@0
|
588
|
wolffd@0
|
589 .PP
|
wolffd@0
|
590 \fB(neato\(hyspecific attributes)\fR
|
wolffd@0
|
591 .br
|
wolffd@0
|
592 \fBw=\fIf\fR sets the weight (spring constant) of an edge
|
wolffd@0
|
593 to the given floating point value. The default is 1.0;
|
wolffd@0
|
594 greater values make the edge tend more toward its optimal length.
|
wolffd@0
|
595 .PP
|
wolffd@0
|
596 \fBlen=\fIf\fR sets the optimal length of an edge.
|
wolffd@0
|
597 The default is 1.0.
|
wolffd@0
|
598 .PP
|
wolffd@0
|
599 \fB(fdp\(hyspecific attributes)\fR
|
wolffd@0
|
600 .br
|
wolffd@0
|
601 \fBweight=\fIf\fR sets the weight of an edge
|
wolffd@0
|
602 to the given floating point value. The default is 1.0;
|
wolffd@0
|
603 greater values make the edge tend more toward its optimal length.
|
wolffd@0
|
604 .SH "COMMAND LINE OPTIONS"
|
wolffd@0
|
605 \fB\-G\fP sets a default graph attribute.
|
wolffd@0
|
606 .br
|
wolffd@0
|
607 \fB\-N\fP sets a default node attribute.
|
wolffd@0
|
608 .br
|
wolffd@0
|
609 \fB\-E\fP sets a default edge attribute.
|
wolffd@0
|
610 Example: \fB\-Gsize="7,8" \-Nshape=box \-Efontsize=8\fR
|
wolffd@0
|
611 .PP
|
wolffd@0
|
612 \fB\-l\fIfile\fR loads custom PostScript library files.
|
wolffd@0
|
613 Usually these define custom shapes or styles.
|
wolffd@0
|
614 If \fB\-l\fP is given by itself, the standard library is omitted.
|
wolffd@0
|
615 .PP
|
wolffd@0
|
616 \fB\-T\fIlang\fR sets the output language as described above.
|
wolffd@0
|
617
|
wolffd@0
|
618 .PP
|
wolffd@0
|
619 \fB\-n\fR[\fB1\fR|\fB2\fR] (no\(hyop)
|
wolffd@0
|
620 If set, neato assumes nodes have already been positioned and all
|
wolffd@0
|
621 nodes have a pos attribute giving the positions.
|
wolffd@0
|
622 It then performs an optional adjustment to remove node\(hynode overlap,
|
wolffd@0
|
623 depending on the value of the overlap attribute,
|
wolffd@0
|
624 computes the edge layouts, depending on the value of the \fBsplines\fR attribute,
|
wolffd@0
|
625 and emits the graph in the appropriate format.
|
wolffd@0
|
626 If num is supplied, the following actions occur:
|
wolffd@0
|
627 .nf
|
wolffd@0
|
628 num = 1
|
wolffd@0
|
629 .fi
|
wolffd@0
|
630 Equivalent to \-n.
|
wolffd@0
|
631 .nf
|
wolffd@0
|
632 num > 1
|
wolffd@0
|
633 .fi
|
wolffd@0
|
634 Use node positions as specified,
|
wolffd@0
|
635 with no adjustment to remove node\(hynode overlaps,
|
wolffd@0
|
636 and use any edge layouts already specified by the pos attribute.
|
wolffd@0
|
637 neato computes an edge layout for any edge that does not have a pos attribute.
|
wolffd@0
|
638 As usual, edge layout is guided by the \fBsplines\fR attribute.
|
wolffd@0
|
639 .PP
|
wolffd@0
|
640 \fB\-K\fIlayout\fR override the default layout engine implied by the command name.
|
wolffd@0
|
641 .PP
|
wolffd@0
|
642 \fB\-O\fP automatically generate output filenames based on the input filename and the -T format.
|
wolffd@0
|
643 .PP
|
wolffd@0
|
644 \fB\-P\fP generate a graph of the currently available plugins.
|
wolffd@0
|
645 .PP
|
wolffd@0
|
646 \fB\-v\fP (verbose) prints various information useful for debugging.
|
wolffd@0
|
647 .PP
|
wolffd@0
|
648 \fB\-V\fP (version) prints version information and exits.
|
wolffd@0
|
649 .PP
|
wolffd@0
|
650 \fB\-?\fP prints the usage and exits.
|
wolffd@0
|
651 .SH "EXAMPLES"
|
wolffd@0
|
652 .nf
|
wolffd@0
|
653 digraph test123 {
|
wolffd@0
|
654 a \-> b \-> c;
|
wolffd@0
|
655 a \-> {x y};
|
wolffd@0
|
656 b [shape=box];
|
wolffd@0
|
657 c [label="hello\\\|nworld",color=blue,fontsize=24,
|
wolffd@0
|
658 fontname="Palatino\-Italic",fontcolor=red,style=filled];
|
wolffd@0
|
659 a \-> z [label="hi", weight=100];
|
wolffd@0
|
660 x \-> z [label="multi\-line\\\|nlabel"];
|
wolffd@0
|
661 edge [style=dashed,color=red];
|
wolffd@0
|
662 b \-> x;
|
wolffd@0
|
663 {rank=same; b x}
|
wolffd@0
|
664 }
|
wolffd@0
|
665 .fi
|
wolffd@0
|
666 .PP
|
wolffd@0
|
667 .nf
|
wolffd@0
|
668 graph test123 {
|
wolffd@0
|
669 a \-\- b \-\- c;
|
wolffd@0
|
670 a \-\- {x y};
|
wolffd@0
|
671 x \-\- c [w=10.0];
|
wolffd@0
|
672 x \-\- y [w=5.0,len=3];
|
wolffd@0
|
673 }
|
wolffd@0
|
674 .fi
|
wolffd@0
|
675 .SH "CAVEATS"
|
wolffd@0
|
676 Edge splines can overlap unintentionally.
|
wolffd@0
|
677 .PP
|
wolffd@0
|
678 Flat edge labels are slightly broken.
|
wolffd@0
|
679 Intercluster edge labels are totally broken.
|
wolffd@0
|
680 .PP
|
wolffd@0
|
681 Because unconstrained optimization is employed, node boxes can
|
wolffd@0
|
682 possibly overlap or touch unrelated edges. All existing
|
wolffd@0
|
683 spring embedders seem to have this limitation.
|
wolffd@0
|
684 .PP
|
wolffd@0
|
685 Apparently reasonable attempts to pin nodes or adjust edge lengths
|
wolffd@0
|
686 and weights can cause instability.
|
wolffd@0
|
687 .SH AUTHORS
|
wolffd@0
|
688 Stephen C. North <north@research.att.com>
|
wolffd@0
|
689 .br
|
wolffd@0
|
690 Emden R. Gansner <erg@research.att.com>
|
wolffd@0
|
691 .br
|
wolffd@0
|
692 John C. Ellson <ellson@research.att.com>
|
wolffd@0
|
693 .PP
|
wolffd@0
|
694 The bitmap driver (PNG, GIF etc) is by Thomas Boutell, <http://www.boutell.com/gd>
|
wolffd@0
|
695 .PP
|
wolffd@0
|
696 The Truetype font renderer is from
|
wolffd@0
|
697 the Freetype Project (David Turner, Robert Wilhelm, and Werner Lemberg)
|
wolffd@0
|
698 (who can be contacted at freetype\-devel@lists.lrz\-muenchen.de).
|
wolffd@0
|
699 .SH "SEE ALSO"
|
wolffd@0
|
700 This man page contains only a small amount of the information related
|
wolffd@0
|
701 to the Graphviz layout programs. The most complete information can be
|
wolffd@0
|
702 found at http://www.graphviz.org/Documentation.php, especially in the
|
wolffd@0
|
703 on\(hyline reference pages. Most of these documents are also available in the
|
wolffd@0
|
704 \fIdoc\fP and \fIdoc/info\fP subtrees in the source and binary distributions.
|
wolffd@0
|
705 .PP
|
wolffd@0
|
706 dotty(1)
|
wolffd@0
|
707 .br
|
wolffd@0
|
708 tcldot(n)
|
wolffd@0
|
709 .br
|
wolffd@0
|
710 xcolors(1)
|
wolffd@0
|
711 .br
|
wolffd@0
|
712 libgraph(3)
|
wolffd@0
|
713 .PP
|
wolffd@0
|
714 E. R. Gansner, S. C. North, K. P. Vo, "DAG \(hy A Program to Draw Directed Graphs", Software \(hy Practice and Experience 17(1), 1988, pp. 1047\(hy1062.
|
wolffd@0
|
715 .br
|
wolffd@0
|
716 E. R. Gansner, E. Koutsofios, S. C. North, K. P. Vo, "A Technique for Drawing Directed Graphs," IEEE Trans. on Soft. Eng. 19(3), 1993, pp. 214\(hy230.
|
wolffd@0
|
717 .br
|
wolffd@0
|
718 S. North and E. Koutsofios, "Applications of graph visualization",
|
wolffd@0
|
719 Graphics Interface 94, pp. 234\(hy245.
|
wolffd@0
|
720 .br
|
wolffd@0
|
721 E. Koutsofios and S. C. North, "Drawing Graphs with dot,"
|
wolffd@0
|
722 Available on research.att.com in dist/drawdag/dotguide.ps.Z.
|
wolffd@0
|
723 .br
|
wolffd@0
|
724 S. C. North, "NEATO User's Manual".
|
wolffd@0
|
725 Available on research.att.com in dist/drawdag/neatodoc.ps.Z.
|