1
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
3
This is a generated document. Do not edit.
7
<!-- This copied from the graphviz website, http://www.graphviz.org/doc/info/attrs.html -->
8
<!-- Used for automatic document generation for yapgvb -->
12
<TITLE>Graph Attributes</TITLE>
16
<H1 align=CENTER>Graph Attributes</H1>
18
The table below describes the attributes used by various Graphviz tools.
19
The table gives the name of the attribute, the graph components (node,
20
edge, etc.) which use the attribute and the type of the attribute
21
(strings representing legal values of that type). Where applicable, the table
22
also gives a default value for the attribute, a minimum allowed setting
23
for numeric attributes, and certain restrictions on the use of the attribute.
25
All Graphviz attributes are specified by name-value pairs. Thus, to
26
set the fillcolor of a node <TT>abc</TT>, one would use
28
<TR><TD><TT>abc [fillcolor = red]</TT></TR>
30
Similarly, to set the arrowhead style of an edge <TT>abc -> def</TT>,
33
<TR><TD><TT>abc -> def [arrowhead = diamond]</TT></TR>
35
Further details concerning the setting of attributes can be found
36
in the description of the
37
<A HREF="http://www.graphviz.org/cvs/doc/info/lang.html">DOT language.</A>
39
<A NAME=h:undir_note><STRONG>Note:</STRONG></A> Some attributes, such as
40
<A HREF=#d:dir>dir</A> or <A HREF=#d:arrowtail>arrowtail</A>, are
41
ambiguous when used in
42
<A HREF="http://www.graphviz.org/cvs/doc/info/lang.html">DOT</A>
43
with an undirected graph since the head and tail of an edge are meaningless.
44
As a convention, the first time an undirected edge appears, the
45
<A HREF="http://www.graphviz.org/cvs/doc/info/lang.html">DOT</A>
46
parser will assign the left node as the tail node and the right node as
47
the head. For example, the edge <TT>A -- B</TT> will have tail <TT>A</TT>
48
and head <TT>B</TT>. It is the user's responsibility to handle such
49
edges consistently. If the edge appears later, in the format
51
<TR><TD><TT>B -- A [taillabel = "tail"]</TT></TR>
53
the drawing will attach the tail label to node <TT>A</TT>.
54
To avoid possible confusion when such attributes are required, the user
55
is encouraged to use a directed graph.
56
If it is important to make the graph appear undirected, this can be
57
done using the <A HREF=#d:dir>dir</A>, <A HREF=#d:arrowtail>arrowtail</A>
58
or <A HREF=#d:arrowhead>arrowhead</A> attributes.
60
The tools accept standard C representations for <EM>int</EM> and
61
<EM>double</EM> types.
62
For the <A NAME=k:bool><EM>bool</EM></A> type, TRUE values are
63
represented by "true" (case-insensitive)
64
and any non-zero integer, and FALSE values by "false" (case-insensitive)
66
In addition, there are a variety of specialized types such as
67
<EM>arrowType</EM>, <EM>color</EM>,
68
<EM>pointf</EM> and <EM>rankdir</EM>. Legal values for these types are given
71
In the <A NAME=h:uses><STRONG>Used By</STRONG></A> field, the
72
characters E, N, G, S and C
73
represent edges, nodes, the root graph, subgraphs
74
and cluster subgraphs, respectively.
75
This field indicates which graph component uses the attribute.
76
<HR ALIGN=CENTER WIDTH="70%" SIZE=3>
78
<TR><TH>Name</TH><TH><A HREF=#h:uses>Used By</A></TH><TH>Type</TH><TH>Default</TH><TH>Minimum</TH><TH>Notes</TH></TR>
79
<TR><TD><A NAME=a:Damping HREF=#d:Damping>Damping</A>
80
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.99</TD><TD>0.0</TD><TD>neato only</TD> </TR>
81
<TR><TD><A NAME=a:K HREF=#d:K>K</A>
82
</TD><TD>GC</TD><TD>double</TD><TD ALIGN="CENTER">0.3</TD><TD>0</TD><TD>fdp only</TD> </TR>
83
<TR><TD><A NAME=a:URL HREF=#d:URL>URL</A>
84
</TD><TD>ENGC</TD><TD><A HREF=#k:escString>escString</A>
85
<BR>string</TD><TD ALIGN="CENTER"><none></TD><TD></TD><TD>svg, postscript, map only</TD> </TR>
86
<TR><TD><A NAME=a:arrowhead HREF=#d:arrowhead>arrowhead</A>
87
</TD><TD>E</TD><TD><A HREF=#k:arrowType>arrowType</A>
88
</TD><TD ALIGN="CENTER">normal</TD><TD></TD><TD></TD> </TR>
89
<TR><TD><A NAME=a:arrowsize HREF=#d:arrowsize>arrowsize</A>
90
</TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD></TD> </TR>
91
<TR><TD><A NAME=a:arrowtail HREF=#d:arrowtail>arrowtail</A>
92
</TD><TD>E</TD><TD><A HREF=#k:arrowType>arrowType</A>
93
</TD><TD ALIGN="CENTER">normal</TD><TD></TD><TD></TD> </TR>
94
<TR><TD><A NAME=a:bb HREF=#d:bb>bb</A>
95
</TD><TD>G</TD><TD><A HREF=#k:rect>rect</A>
96
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
97
<TR><TD><A NAME=a:bgcolor HREF=#d:bgcolor>bgcolor</A>
98
</TD><TD>GC</TD><TD><A HREF=#k:color>color</A>
99
</TD><TD ALIGN="CENTER"><none></TD><TD></TD><TD></TD> </TR>
100
<TR><TD><A NAME=a:center HREF=#d:center>center</A>
101
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
102
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
103
<TR><TD><A NAME=a:charset HREF=#d:charset>charset</A>
104
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">"UTF-8"</TD><TD></TD><TD></TD> </TR>
105
<TR><TD><A NAME=a:clusterrank HREF=#d:clusterrank>clusterrank</A>
106
</TD><TD>G</TD><TD><A HREF=#k:clusterMode>clusterMode</A>
107
</TD><TD ALIGN="CENTER">local</TD><TD></TD><TD>dot only</TD> </TR>
108
<TR><TD><A NAME=a:color HREF=#d:color>color</A>
109
</TD><TD>ENC</TD><TD><A HREF=#k:color>color</A>
110
<BR><A HREF=#k:colorList>colorList</A>
111
</TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
112
<TR><TD><A NAME=a:colorscheme HREF=#d:colorscheme>colorscheme</A>
113
</TD><TD>ENCG</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
114
<TR><TD><A NAME=a:comment HREF=#d:comment>comment</A>
115
</TD><TD>ENG</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
116
<TR><TD><A NAME=a:compound HREF=#d:compound>compound</A>
117
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
118
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>dot only</TD> </TR>
119
<TR><TD><A NAME=a:concentrate HREF=#d:concentrate>concentrate</A>
120
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
121
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>dot only</TD> </TR>
122
<TR><TD><A NAME=a:constraint HREF=#d:constraint>constraint</A>
123
</TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
124
</TD><TD ALIGN="CENTER">true</TD><TD></TD><TD>dot only</TD> </TR>
125
<TR><TD><A NAME=a:decorate HREF=#d:decorate>decorate</A>
126
</TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
127
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
128
<TR><TD><A NAME=a:defaultdist HREF=#d:defaultdist>defaultdist</A>
129
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">1+(avg. len)*sqrt(|V|)</TD><TD>epsilon</TD><TD>neato only</TD> </TR>
130
<TR><TD><A NAME=a:dim HREF=#d:dim>dim</A>
131
</TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">2</TD><TD>2</TD><TD>fdp, neato only</TD> </TR>
132
<TR><TD><A NAME=a:dir HREF=#d:dir>dir</A>
133
</TD><TD>E</TD><TD><A HREF=#k:dirType>dirType</A>
134
</TD><TD ALIGN="CENTER">forward(directed)<BR>none(undirected)</TD><TD></TD><TD></TD> </TR>
135
<TR><TD><A NAME=a:distortion HREF=#d:distortion>distortion</A>
136
</TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>-100.0</TD><TD></TD> </TR>
137
<TR><TD><A NAME=a:dpi HREF=#d:dpi>dpi</A>
138
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">96.0<BR>0.0</TD><TD></TD><TD>svg, bitmap output only</TD> </TR>
139
<TR><TD><A NAME=a:epsilon HREF=#d:epsilon>epsilon</A>
140
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">.0001 * # nodes(mode == KK)<BR>.0001(mode == major)</TD><TD></TD><TD>neato only</TD> </TR>
141
<TR><TD><A NAME=a:fillcolor HREF=#d:fillcolor>fillcolor</A>
142
</TD><TD>NC</TD><TD><A HREF=#k:color>color</A>
143
</TD><TD ALIGN="CENTER">lightgrey(nodes)<BR>black(clusters)</TD><TD></TD><TD></TD> </TR>
144
<TR><TD><A NAME=a:fixedsize HREF=#d:fixedsize>fixedsize</A>
145
</TD><TD>N</TD><TD><A HREF=#k:bool>bool</A>
146
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
147
<TR><TD><A NAME=a:fontcolor HREF=#d:fontcolor>fontcolor</A>
148
</TD><TD>ENGC</TD><TD><A HREF=#k:color>color</A>
149
</TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
150
<TR><TD><A NAME=a:fontname HREF=#d:fontname>fontname</A>
151
</TD><TD>ENGC</TD><TD>string</TD><TD ALIGN="CENTER">"Times-Roman"</TD><TD></TD><TD></TD> </TR>
152
<TR><TD><A NAME=a:fontpath HREF=#d:fontpath>fontpath</A>
153
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">system-dependent</TD><TD></TD><TD></TD> </TR>
154
<TR><TD><A NAME=a:fontsize HREF=#d:fontsize>fontsize</A>
155
</TD><TD>ENGC</TD><TD>double</TD><TD ALIGN="CENTER">14.0</TD><TD>1.0</TD><TD></TD> </TR>
156
<TR><TD><A NAME=a:group HREF=#d:group>group</A>
157
</TD><TD>N</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
158
<TR><TD><A NAME=a:headURL HREF=#d:headURL>headURL</A>
159
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
160
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>map only</TD> </TR>
161
<TR><TD><A NAME=a:headclip HREF=#d:headclip>headclip</A>
162
</TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
163
</TD><TD ALIGN="CENTER">true</TD><TD></TD><TD></TD> </TR>
164
<TR><TD><A NAME=a:headhref HREF=#d:headhref>headhref</A>
165
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
166
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>map only</TD> </TR>
167
<TR><TD><A NAME=a:headlabel HREF=#d:headlabel>headlabel</A>
168
</TD><TD>E</TD><TD><A HREF=#k:lblString>lblString</A>
169
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
170
<TR><TD><A NAME=a:headport HREF=#d:headport>headport</A>
171
</TD><TD>E</TD><TD><A HREF=#k:portPos>portPos</A>
172
</TD><TD ALIGN="CENTER">center</TD><TD></TD><TD></TD> </TR>
173
<TR><TD><A NAME=a:headtarget HREF=#d:headtarget>headtarget</A>
174
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
175
</TD><TD ALIGN="CENTER"><none></TD><TD></TD><TD>map only</TD> </TR>
176
<TR><TD><A NAME=a:headtooltip HREF=#d:headtooltip>headtooltip</A>
177
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
178
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>cmap only</TD> </TR>
179
<TR><TD><A NAME=a:height HREF=#d:height>height</A>
180
</TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.5</TD><TD>0.02</TD><TD></TD> </TR>
181
<TR><TD><A NAME=a:href HREF=#d:href>href</A>
182
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
183
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg, postscript, map only</TD> </TR>
184
<TR><TD><A NAME=a:label HREF=#d:label>label</A>
185
</TD><TD>ENGC</TD><TD><A HREF=#k:lblString>lblString</A>
186
</TD><TD ALIGN="CENTER">"N"</TD><TD>(nodes)<BR>"" (otherwise)</TD><TD></TD> </TR>
187
<TR><TD><A NAME=a:labelangle HREF=#d:labelangle>labelangle</A>
188
</TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">-25.0</TD><TD>-180.0</TD><TD></TD> </TR>
189
<TR><TD><A NAME=a:labeldistance HREF=#d:labeldistance>labeldistance</A>
190
</TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD></TD> </TR>
191
<TR><TD><A NAME=a:labelfloat HREF=#d:labelfloat>labelfloat</A>
192
</TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
193
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
194
<TR><TD><A NAME=a:labelfontcolor HREF=#d:labelfontcolor>labelfontcolor</A>
195
</TD><TD>E</TD><TD><A HREF=#k:color>color</A>
196
</TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
197
<TR><TD><A NAME=a:labelfontname HREF=#d:labelfontname>labelfontname</A>
198
</TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">"Times-Roman"</TD><TD></TD><TD></TD> </TR>
199
<TR><TD><A NAME=a:labelfontsize HREF=#d:labelfontsize>labelfontsize</A>
200
</TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">14.0</TD><TD>1.0</TD><TD></TD> </TR>
201
<TR><TD><A NAME=a:labeljust HREF=#d:labeljust>labeljust</A>
202
</TD><TD>GC</TD><TD>string</TD><TD ALIGN="CENTER">"c"</TD><TD></TD><TD></TD> </TR>
203
<TR><TD><A NAME=a:labelloc HREF=#d:labelloc>labelloc</A>
204
</TD><TD>GC</TD><TD>string</TD><TD ALIGN="CENTER">"t"</TD><TD>clusters)<BR>"b"(root graphs)</TD><TD></TD> </TR>
205
<TR><TD><A NAME=a:landscape HREF=#d:landscape>landscape</A>
206
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
207
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
208
<TR><TD><A NAME=a:layer HREF=#d:layer>layer</A>
209
</TD><TD>EN</TD><TD><A HREF=#k:layerRange>layerRange</A>
210
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
211
<TR><TD><A NAME=a:layers HREF=#d:layers>layers</A>
212
</TD><TD>G</TD><TD><A HREF=#k:layerList>layerList</A>
213
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
214
<TR><TD><A NAME=a:layersep HREF=#d:layersep>layersep</A>
215
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">" :\t"</TD><TD></TD><TD></TD> </TR>
216
<TR><TD><A NAME=a:len HREF=#d:len>len</A>
217
</TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0(neato)<BR>0.3(fdp)</TD><TD></TD><TD>fdp, neato only</TD> </TR>
218
<TR><TD><A NAME=a:levelsgap HREF=#d:levelsgap>levelsgap</A>
219
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD></TD><TD>neato only</TD> </TR>
220
<TR><TD><A NAME=a:lhead HREF=#d:lhead>lhead</A>
221
</TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
222
<TR><TD><A NAME=a:lp HREF=#d:lp>lp</A>
223
</TD><TD>EGC</TD><TD><A HREF=#k:point>point</A>
224
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
225
<TR><TD><A NAME=a:ltail HREF=#d:ltail>ltail</A>
226
</TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
227
<TR><TD><A NAME=a:margin HREF=#d:margin>margin</A>
228
</TD><TD>NG</TD><TD>double<BR><A HREF=#k:pointf>pointf</A>
229
</TD><TD ALIGN="CENTER"><device-dependent></TD><TD></TD><TD></TD> </TR>
230
<TR><TD><A NAME=a:maxiter HREF=#d:maxiter>maxiter</A>
231
</TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">100 * # nodes(mode == KK)<BR>200(mode == major)<BR>600(fdp)</TD><TD></TD><TD>fdp, neato only</TD> </TR>
232
<TR><TD><A NAME=a:mclimit HREF=#d:mclimit>mclimit</A>
233
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD></TD><TD>dot only</TD> </TR>
234
<TR><TD><A NAME=a:mindist HREF=#d:mindist>mindist</A>
235
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0.0</TD><TD>circo only</TD> </TR>
236
<TR><TD><A NAME=a:minlen HREF=#d:minlen>minlen</A>
237
</TD><TD>E</TD><TD>int</TD><TD ALIGN="CENTER">1</TD><TD>0</TD><TD>dot only</TD> </TR>
238
<TR><TD><A NAME=a:mode HREF=#d:mode>mode</A>
239
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">"major"</TD><TD></TD><TD>neato only</TD> </TR>
240
<TR><TD><A NAME=a:model HREF=#d:model>model</A>
241
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">"shortpath"</TD><TD></TD><TD>neato only</TD> </TR>
242
<TR><TD><A NAME=a:nodesep HREF=#d:nodesep>nodesep</A>
243
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.25</TD><TD>0.02</TD><TD>dot only</TD> </TR>
244
<TR><TD><A NAME=a:nojustify HREF=#d:nojustify>nojustify</A>
245
</TD><TD>GCNE</TD><TD><A HREF=#k:bool>bool</A>
246
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
247
<TR><TD><A NAME=a:normalize HREF=#d:normalize>normalize</A>
248
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
249
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>not dot</TD> </TR>
250
<TR><TD><A NAME=a:nslimit HREF=#d:nslimit>nslimit</A>
251
<BR><A NAME=a:nslimit1 HREF=#d:nslimit1>nslimit1</A>
252
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>dot only</TD> </TR>
253
<TR><TD><A NAME=a:ordering HREF=#d:ordering>ordering</A>
254
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
255
<TR><TD><A NAME=a:orientation HREF=#d:orientation>orientation</A>
256
</TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>360.0</TD><TD></TD> </TR>
257
<TR><TD><A NAME=aa:orientation HREF=#dd:orientation>orientation</A>
258
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
259
<TR><TD><A NAME=a:outputorder HREF=#d:outputorder>outputorder</A>
260
</TD><TD>G</TD><TD><A HREF=#k:outputMode>outputMode</A>
261
</TD><TD ALIGN="CENTER">breadthfirst</TD><TD></TD><TD></TD> </TR>
262
<TR><TD><A NAME=a:overlap HREF=#d:overlap>overlap</A>
263
</TD><TD>G</TD><TD>string<BR><A HREF=#k:bool>bool</A>
264
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>not dot</TD> </TR>
265
<TR><TD><A NAME=a:pack HREF=#d:pack>pack</A>
266
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
267
<BR>int</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>not dot</TD> </TR>
268
<TR><TD><A NAME=a:packmode HREF=#d:packmode>packmode</A>
269
</TD><TD>G</TD><TD><A HREF=#k:packMode>packMode</A>
270
</TD><TD ALIGN="CENTER">node</TD><TD></TD><TD>not dot</TD> </TR>
271
<TR><TD><A NAME=a:page HREF=#d:page>page</A>
272
</TD><TD>G</TD><TD><A HREF=#k:pointf>pointf</A>
273
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
274
<TR><TD><A NAME=a:pagedir HREF=#d:pagedir>pagedir</A>
275
</TD><TD>G</TD><TD><A HREF=#k:pagedir>pagedir</A>
276
</TD><TD ALIGN="CENTER">BL</TD><TD></TD><TD></TD> </TR>
277
<TR><TD><A NAME=a:pencolor HREF=#d:pencolor>pencolor</A>
278
</TD><TD>C</TD><TD><A HREF=#k:color>color</A>
279
</TD><TD ALIGN="CENTER">black</TD><TD></TD><TD></TD> </TR>
280
<TR><TD><A NAME=a:peripheries HREF=#d:peripheries>peripheries</A>
281
</TD><TD>NC</TD><TD>int</TD><TD ALIGN="CENTER">shape default(nodes)<BR>1(clusters)</TD><TD>0</TD><TD></TD> </TR>
282
<TR><TD><A NAME=a:pin HREF=#d:pin>pin</A>
283
</TD><TD>N</TD><TD><A HREF=#k:bool>bool</A>
284
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>fdp, neato only</TD> </TR>
285
<TR><TD><A NAME=a:pos HREF=#d:pos>pos</A>
286
</TD><TD>EN</TD><TD><A HREF=#k:point>point</A>
287
<BR><A HREF=#k:splineType>splineType</A>
288
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
289
<TR><TD><A NAME=a:quantum HREF=#d:quantum>quantum</A>
290
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>0.0</TD><TD></TD> </TR>
291
<TR><TD><A NAME=a:rank HREF=#d:rank>rank</A>
292
</TD><TD>S</TD><TD><A HREF=#k:rankType>rankType</A>
293
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>dot only</TD> </TR>
294
<TR><TD><A NAME=a:rankdir HREF=#d:rankdir>rankdir</A>
295
</TD><TD>G</TD><TD><A HREF=#k:rankdir>rankdir</A>
296
</TD><TD ALIGN="CENTER">TB</TD><TD></TD><TD>dot only</TD> </TR>
297
<TR><TD><A NAME=a:ranksep HREF=#d:ranksep>ranksep</A>
298
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.5(dot)<BR>1.0(twopi)</TD><TD>0.02</TD><TD>twopi, dot only</TD> </TR>
299
<TR><TD><A NAME=a:ratio HREF=#d:ratio>ratio</A>
300
</TD><TD>G</TD><TD>double<BR>string</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
301
<TR><TD><A NAME=a:rects HREF=#d:rects>rects</A>
302
</TD><TD>N</TD><TD><A HREF=#k:rect>rect</A>
303
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
304
<TR><TD><A NAME=a:regular HREF=#d:regular>regular</A>
305
</TD><TD>N</TD><TD><A HREF=#k:bool>bool</A>
306
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD></TD> </TR>
307
<TR><TD><A NAME=a:remincross HREF=#d:remincross>remincross</A>
308
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
309
</TD><TD ALIGN="CENTER">false</TD><TD></TD><TD>dot only</TD> </TR>
310
<TR><TD><A NAME=a:resolution HREF=#d:resolution>resolution</A>
311
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">96.0<BR>0.0</TD><TD></TD><TD>svg, bitmap output only</TD> </TR>
312
<TR><TD><A NAME=a:root HREF=#d:root>root</A>
313
</TD><TD>GN</TD><TD>string<BR><A HREF=#k:bool>bool</A>
314
</TD><TD ALIGN="CENTER">""</TD><TD>graphs)<BR>false(nodes)</TD><TD>circo, twopi only</TD> </TR>
315
<TR><TD><A NAME=a:rotate HREF=#d:rotate>rotate</A>
316
</TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">0</TD><TD></TD><TD></TD> </TR>
317
<TR><TD><A NAME=a:samehead HREF=#d:samehead>samehead</A>
318
</TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
319
<TR><TD><A NAME=a:sametail HREF=#d:sametail>sametail</A>
320
</TD><TD>E</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>dot only</TD> </TR>
321
<TR><TD><A NAME=a:samplepoints HREF=#d:samplepoints>samplepoints</A>
322
</TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">8</TD><TD></TD><TD></TD> </TR>
323
<TR><TD><A NAME=a:searchsize HREF=#d:searchsize>searchsize</A>
324
</TD><TD>G</TD><TD>int</TD><TD ALIGN="CENTER">30</TD><TD></TD><TD>dot only</TD> </TR>
325
<TR><TD><A NAME=a:sep HREF=#d:sep>sep</A>
326
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.1</TD><TD></TD><TD>not dot</TD> </TR>
327
<TR><TD><A NAME=a:shape HREF=#d:shape>shape</A>
328
</TD><TD>N</TD><TD><A HREF=#k:shape>shape</A>
329
</TD><TD ALIGN="CENTER">ellipse</TD><TD></TD><TD></TD> </TR>
330
<TR><TD><A NAME=a:shapefile HREF=#d:shapefile>shapefile</A>
331
</TD><TD>N</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
332
<TR><TD><A NAME=a:showboxes HREF=#d:showboxes>showboxes</A>
333
</TD><TD>ENG</TD><TD>int</TD><TD ALIGN="CENTER">0</TD><TD>0</TD><TD>dot only</TD> </TR>
334
<TR><TD><A NAME=a:sides HREF=#d:sides>sides</A>
335
</TD><TD>N</TD><TD>int</TD><TD ALIGN="CENTER">4</TD><TD>0</TD><TD></TD> </TR>
336
<TR><TD><A NAME=a:size HREF=#d:size>size</A>
337
</TD><TD>G</TD><TD><A HREF=#k:pointf>pointf</A>
338
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
339
<TR><TD><A NAME=a:skew HREF=#d:skew>skew</A>
340
</TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>-100.0</TD><TD></TD> </TR>
341
<TR><TD><A NAME=a:splines HREF=#d:splines>splines</A>
342
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
343
<BR>string</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
344
<TR><TD><A NAME=a:start HREF=#d:start>start</A>
345
</TD><TD>G</TD><TD><A HREF=#k:startType>startType</A>
346
</TD><TD ALIGN="CENTER">"random"</TD><TD></TD><TD>fdp, neato only</TD> </TR>
347
<TR><TD><A NAME=a:style HREF=#d:style>style</A>
348
</TD><TD>ENC</TD><TD><A HREF=#k:style>style</A>
349
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD></TD> </TR>
350
<TR><TD><A NAME=a:stylesheet HREF=#d:stylesheet>stylesheet</A>
351
</TD><TD>G</TD><TD>string</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>svg only</TD> </TR>
352
<TR><TD><A NAME=a:tailURL HREF=#d:tailURL>tailURL</A>
353
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
354
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>map only</TD> </TR>
355
<TR><TD><A NAME=a:tailclip HREF=#d:tailclip>tailclip</A>
356
</TD><TD>E</TD><TD><A HREF=#k:bool>bool</A>
357
</TD><TD ALIGN="CENTER">true</TD><TD></TD><TD></TD> </TR>
358
<TR><TD><A NAME=a:tailhref HREF=#d:tailhref>tailhref</A>
359
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
360
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>map only</TD> </TR>
361
<TR><TD><A NAME=a:taillabel HREF=#d:taillabel>taillabel</A>
362
</TD><TD>E</TD><TD><A HREF=#k:lblString>lblString</A>
363
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD></TD> </TR>
364
<TR><TD><A NAME=a:tailport HREF=#d:tailport>tailport</A>
365
</TD><TD>E</TD><TD><A HREF=#k:portPos>portPos</A>
366
</TD><TD ALIGN="CENTER">center</TD><TD></TD><TD></TD> </TR>
367
<TR><TD><A NAME=a:tailtarget HREF=#d:tailtarget>tailtarget</A>
368
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
369
</TD><TD ALIGN="CENTER"><none></TD><TD></TD><TD>map only</TD> </TR>
370
<TR><TD><A NAME=a:tailtooltip HREF=#d:tailtooltip>tailtooltip</A>
371
</TD><TD>E</TD><TD><A HREF=#k:escString>escString</A>
372
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>cmap only</TD> </TR>
373
<TR><TD><A NAME=a:target HREF=#d:target>target</A>
374
</TD><TD>ENGC</TD><TD><A HREF=#k:escString>escString</A>
375
<BR>string</TD><TD ALIGN="CENTER"><none></TD><TD></TD><TD>svg, map only</TD> </TR>
376
<TR><TD><A NAME=a:tooltip HREF=#d:tooltip>tooltip</A>
377
</TD><TD>NEC</TD><TD><A HREF=#k:escString>escString</A>
378
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>cmap only</TD> </TR>
379
<TR><TD><A NAME=a:truecolor HREF=#d:truecolor>truecolor</A>
380
</TD><TD>G</TD><TD><A HREF=#k:bool>bool</A>
381
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>bitmap output only</TD> </TR>
382
<TR><TD><A NAME=a:vertices HREF=#d:vertices>vertices</A>
383
</TD><TD>N</TD><TD><A HREF=#k:pointfList>pointfList</A>
384
</TD><TD ALIGN="CENTER"></TD><TD></TD><TD>write only</TD> </TR>
385
<TR><TD><A NAME=a:viewport HREF=#d:viewport>viewport</A>
386
</TD><TD>G</TD><TD><A HREF=#k:viewPort>viewPort</A>
387
</TD><TD ALIGN="CENTER">""</TD><TD></TD><TD>bitmap output, cmap, map only</TD> </TR>
388
<TR><TD><A NAME=a:voro_margin HREF=#d:voro_margin>voro_margin</A>
389
</TD><TD>G</TD><TD>double</TD><TD ALIGN="CENTER">0.05</TD><TD>0.0</TD><TD>not dot</TD> </TR>
390
<TR><TD><A NAME=a:weight HREF=#d:weight>weight</A>
391
</TD><TD>E</TD><TD>double</TD><TD ALIGN="CENTER">1.0</TD><TD>0(dot)<BR>1(neato)</TD><TD></TD> </TR>
392
<TR><TD><A NAME=a:width HREF=#d:width>width</A>
393
</TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.75</TD><TD>0.01</TD><TD></TD> </TR>
394
<TR><TD><A NAME=a:z HREF=#d:z>z</A>
395
</TD><TD>N</TD><TD>double</TD><TD ALIGN="CENTER">0.0</TD><TD>-MAXFLOAT<BR>-1000</TD><TD></TD> </TR>
398
<H1>Attribute Descriptions</H1>
400
<DT><A NAME=d:Damping HREF=#a:Damping><STRONG>Damping</STRONG></A>
401
<DD> Factor damping force motions. On each iteration, a nodes movement
402
is limited to this factor of its potential motion. By being less than
403
1.0, the system tends to ``cool'', thereby preventing cycling.
405
<DT><A NAME=d:K HREF=#a:K><STRONG>K</STRONG></A>
406
<DD> Spring constant used in virtual physical model. It roughly corresponds
407
to an ideal edge length (in inches), in that increasing K tends to
408
increase the distance between nodes.
409
Note that the edge attribute <A HREF=#d:len>len</A> can be used to
410
override this value for adjacent nodes.
412
<DT><A NAME=d:URL HREF=#a:URL><STRONG>URL</STRONG></A>
413
<DD> Hyperlinks incorporated into device-dependent output.
414
At present, used in ps2, cmap, i*map and svg formats.
415
For all these formats, URLs can be attached to nodes, edges and
416
clusters. URL attributes can also be attached to the root graph in ps2,
417
cmap and i*map formats. This serves as the base URL for relative URLs in the
418
former, and as the default image map file in the latter.
420
The active area for a node or cluster is its bounding box. For edges,
421
the active areas are small circles where the edge contacts its head
422
and tail nodes. These areas may overlap the related node, and the edge
424
If the edge has a label, this will also be active.
425
Finally, if the edge has a head or tail label, this will also be active.
426
Note, however, that if the edge has a <A HREF=#d:headURL>headURL</A>
427
attribute, it is this value that is used near the head node and on
428
the head label, if defined. The similar restriction holds when
429
<A HREF=#d:tailURL>tailURL</A> is defined.
431
The URL of the root graph is only treated as an
432
<A HREF=#k:escString>escString</A> if the output format is cmap.
434
<DT><A NAME=d:arrowhead HREF=#a:arrowhead><STRONG>arrowhead</STRONG></A>
435
<DD> Style of arrowhead on the head node of an edge.
436
See also the <A HREF=#d:dir>dir</A> attribute,
437
and a <A HREF=#h:undir_note>limitation</A>.
439
<DT><A NAME=d:arrowsize HREF=#a:arrowsize><STRONG>arrowsize</STRONG></A>
440
<DD> Multiplicative scale factor for arrowheads.
442
<DT><A NAME=d:arrowtail HREF=#a:arrowtail><STRONG>arrowtail</STRONG></A>
443
<DD> Style of arrowhead on the tail node of an edge.
444
See also the <A HREF=#d:dir>dir</A> attribute,
445
and a <A HREF=#h:undir_note>limitation</A>.
447
<DT><A NAME=d:bb HREF=#a:bb><STRONG>bb</STRONG></A>
448
<DD> Bounding box of drawing in integer points.
450
<DT><A NAME=d:bgcolor HREF=#a:bgcolor><STRONG>bgcolor</STRONG></A>
451
<DD> When attached to the root graph, this color is used as the background for
452
entire canvas. When a cluster attribute, it is used as the initial
453
background for the cluster. If a cluster has a filled
454
<A HREF=#d:style>style</A>, the
455
cluster's <A HREF=#d:fillcolor>fillcolor</A> will overlay the
458
If no background color is specified for the root graph, no graphics
459
operation are performed on the background. This works fine for
460
PostScript but for bitmap output, all bits are initialized to something.
461
This means that when the bitmap output is included in some other
462
document, all of the bits within the bitmap's bounding box will be
463
set, overwriting whatever color or graphics where already on the page.
464
If this effect is not desired, and you only want to set bits explicitly
465
assigned in drawing the graph, set <B>background</B>="transparent".
467
<DT><A NAME=d:center HREF=#a:center><STRONG>center</STRONG></A>
468
<DD> If true, the drawing is centered in the output canvas.
470
<DT><A NAME=d:charset HREF=#a:charset><STRONG>charset</STRONG></A>
471
<DD> Specifies the character encoding used when interpreting string input
472
as a text label. The default value is <TT>"UTF-8"</TT>.
473
The other legal value is <TT>"iso-8859-1"</TT> or,
475
<TT>"Latin1"</TT>. The <B>charset</B> attribute is case-insensitive.
476
Note that if the character encoding used in the input does not
477
match the <B>charset</B> value, the resulting output may be very strange.
479
<DT><A NAME=d:clusterrank HREF=#a:clusterrank><STRONG>clusterrank</STRONG></A>
480
<DD> Mode used for handling clusters. If <B>clusterrank</B> is "local", a
481
subgraph whose name begins with "cluster" is given special treatment.
482
The subgraph is laid out separately, and then integrated as a unit into
483
its parent graph, with a bounding rectangle drawn about it.
484
If the cluster has a <A HREF=#d:label>label</A> parameter, this label
485
is displayed within the rectangle.
486
Note also that there can be clusters within clusters.
487
At present, the modes "global" and "none"
488
appear to be identical, both turning off the special cluster processing.
490
<DT><A NAME=d:color HREF=#a:color><STRONG>color</STRONG></A>
491
<DD> Basic drawing color for graphics, not text. For the latter, use the
492
<A HREF=#d.fontcolor>fontcolor</A> attribute.
495
can either be a single color or a <A HREF=#k:colorList>colorList</A>.
496
In the latter case, the edge is drawn using parallel splines or lines,
497
one for each color in the list, in the order given.
498
The head arrow, if any, is drawn using the first color in the list,
499
and the tail arrow, if any, the second color. This supports the common
500
case of drawing opposing edges, but using parallel splines instead of
501
separately routed multiedges. For example, the graph
504
a -> b [dir=both color="red:blue"]
508
<IMG SRC="colorlist.gif">
510
<DT><A NAME=d:colorscheme HREF=#a:colorscheme><STRONG>colorscheme</STRONG></A>
511
<DD> This attribute specifies a color scheme namespace. If defined, it specifies
512
the context for interpreting color names. In particular, if a
513
<A HREF=#k:color>color</A> value has form <TT>"xxx"</TT> or <TT>"//xxx"</TT>,
515
color <TT>xxx</TT> will be evaluated according to the current color scheme.
516
If no color scheme is set, the standard X11 naming is used.
517
For example, if <TT>colorscheme=bugn9</TT>, then <TT>color=7</TT>
518
is interpreted as <TT>"/bugn9/7"</TT>.
520
<DT><A NAME=d:comment HREF=#a:comment><STRONG>comment</STRONG></A>
521
<DD> Comments are inserted into output. Device-dependent
523
<DT><A NAME=d:compound HREF=#a:compound><STRONG>compound</STRONG></A>
524
<DD> If true, allow edges between clusters. (See <A HREF=#d:lhead>lhead</A>
525
and <A HREF=#d:ltail>ltail</A> below.)
527
<DT><A NAME=d:concentrate HREF=#a:concentrate><STRONG>concentrate</STRONG></A>
528
<DD> If true, use edge concentrators.
530
<DT><A NAME=d:constraint HREF=#a:constraint><STRONG>constraint</STRONG></A>
531
<DD> If false, the edge is not used in ranking the nodes. For example,
537
b -> c [constraint=false];
540
the edge <CODE>b -> c</CODE> does not add a constraint during rank
541
assignment, so the only constraints are that a be above b and c,
542
yielding the graph:<BR>
543
<IMG SRC="constraint.gif">
545
<DT><A NAME=d:decorate HREF=#a:decorate><STRONG>decorate</STRONG></A>
546
<DD> If true, attach edge label to edge by a 2-segment
547
polyline, underlining the label, then going to the closest point of spline.
549
<DT><A NAME=d:defaultdist HREF=#a:defaultdist><STRONG>defaultdist</STRONG></A>
550
<DD> This specifies the distance between nodes in separate connected
551
components. If set too small, connected components may overlap.
552
Only applicable if <A HREF=#d:pack>pack</A>=false.
554
<DT><A NAME=d:dim HREF=#a:dim><STRONG>dim</STRONG></A>
555
<DD> Set the number of dimensions used for the layout. The maximum value
558
<DT><A NAME=d:dir HREF=#a:dir><STRONG>dir</STRONG></A>
559
<DD> Set edge type for drawing arrowheads. This indicates which ends of the
560
edge should be decorated with an arrowhead. The actual style of the
561
arrowhead can be specified using the <A HREF=#d:arrowhead>arrowhead</A>
562
and <A HREF=#d:arrowtail>arrowtail</A> attributes.
563
See <A HREF=#h:undir_note>limitation</A>.
565
<DT><A NAME=d:distortion HREF=#a:distortion><STRONG>distortion</STRONG></A>
566
<DD> Distortion factor for <A HREF=#d:shape><B>shape</B></A>=polygon.
567
Positive values cause top part to
568
be larger than bottom; negative values do the opposite.
570
<DT><A NAME=d:dpi HREF=#a:dpi><STRONG>dpi</STRONG></A>
571
<DD> This specifies the expected number of pixels per inch on a display device.
572
For bitmap output, this guarantees that text rendering will be
573
done more accurately, both in size and in placement. For SVG output,
574
it is used to guarantee that the dimensions in the output correspond to
575
the correct number of points or inches.
577
<DT><A NAME=d:epsilon HREF=#a:epsilon><STRONG>epsilon</STRONG></A>
578
<DD> Terminating condition. If the length squared of all energy gradients are
579
< <B>epsilon</B>, the algorithm stops.
581
<DT><A NAME=d:fillcolor HREF=#a:fillcolor><STRONG>fillcolor</STRONG></A>
582
<DD> Color used to fill the background of a node or cluster.
583
If <B>fillcolor</B> is not defined, <A HREF=#d:color>color</A> is
584
used. (For clusters, if <B>color</B> is not defined,
585
<A HREF=#d:bgcolor>bgcolor</A> is used.) If this is not defined,
586
the default is used, except for
587
<A HREF=#d:shape><B>shape</B></A>=point or when the output
589
which use black by default.
591
Note that a cluster inherits the root graph's attributes if defined.
592
Thus, if the root graph has defined a <B>fillcolor</B>, this will override a
593
<B>color</B> or <B>bgcolor</B> attribute set for the cluster.
595
<DT><A NAME=d:fixedsize HREF=#a:fixedsize><STRONG>fixedsize</STRONG></A>
596
<DD> If true, the node size is specified by the values of the
597
<A HREF=#d:width><B>width</B></A>
598
and <A HREF=#d:height><B>height</B></A> attributes only
599
and is not expanded to contain the text label.
601
<DT><A NAME=d:fontcolor HREF=#a:fontcolor><STRONG>fontcolor</STRONG></A>
602
<DD> Color used for text.
604
<DT><A NAME=d:fontname HREF=#a:fontname><STRONG>fontname</STRONG></A>
605
<DD> Font used for text. This very much depends on the output format and, for
606
non-bitmap output such as PostScript or SVG, the availability of the font
607
when the graph is displayed or printed. As such, it is best to rely on
608
font faces that are generally available, such as Times-Roman, Helvetica or
611
If Graphviz was built using the
612
<A HREF=http://pdx.freedesktop.org/~fontconfig/fontconfig-user.html>fontconfig library</A>, the latter library
613
will be used to search for the font. However, if the <TT>fontname</TT> string
614
contains a slash character "/", it is treated as a pathname for the font
615
file, though font lookup will append the usual font suffixes.
617
If Graphviz does not use fontconfig, <TT>fontname</TT> will be
618
considered the name of a Type 1 or True Type font file.
619
If you specify <TT>fontname=schlbk</TT>, the tool will look for a
620
file named <TT>schlbk.ttf</TT> or <TT>schlbk.pfa</TT> or <TT>schlbk.pfb</TT>
621
in one of the directories specified by
622
the <A HREF=#d:fontpath>fontpath</A> attribute.
623
The lookup does support various aliases for the common fonts.
625
<DT><A NAME=d:fontpath HREF=#a:fontpath><STRONG>fontpath</STRONG></A>
626
<DD> Directory list used by libgd to search for bitmap fonts if Graphviz
627
was not built with the fontconfig library.
628
If <B>fontpath</B> is not set, the environment
629
variable <TT>DOTFONTPATH</TT> is checked.
630
If that is not set, <TT>GDFONTPATH</TT> is checked.
631
If not set, libgd uses its compiled-in font path.
632
Note that fontpath is an attribute of the root graph.
634
<DT><A NAME=d:fontsize HREF=#a:fontsize><STRONG>fontsize</STRONG></A>
635
<DD> Font size, in points, used for text.
637
<DT><A NAME=d:group HREF=#a:group><STRONG>group</STRONG></A>
638
<DD> If the end points of an edge belong to the same group, i.e., have the
639
same group attribute, parameters are set to avoid crossings and keep
642
<DT><A NAME=d:headURL HREF=#a:headURL><STRONG>headURL</STRONG></A>
643
<DD> For the output format imap or cmap, if <B>headURL</B> is defined, it is
644
output as part of the head label of the edge.
645
See <A HREF=#h:undir_note>limitation</A>.
647
<DT><A NAME=d:headclip HREF=#a:headclip><STRONG>headclip</STRONG></A>
648
<DD> If true, the head of an edge is clipped to the boundary of the head node;
649
otherwise, the end of the edge goes to the center of the node, or the
650
center of a port, if applicable.
652
<DT><A NAME=d:headhref HREF=#a:headhref><STRONG>headhref</STRONG></A>
653
<DD> Synonym for <A HREF=#d:headURL>headURL</A>.
655
<DT><A NAME=d:headlabel HREF=#a:headlabel><STRONG>headlabel</STRONG></A>
656
<DD> Text label to be placed near head of edge.
657
See <A HREF=#h:undir_note>limitation</A>.
659
<DT><A NAME=d:headport HREF=#a:headport><STRONG>headport</STRONG></A>
660
<DD> Indicates where on the head node to attach the head of the edge.
661
In the default case, the edge is aimed towards the center of the node,
662
and then clipped at the node boundary.
663
See <A HREF=#h:undir_note>limitation</A>.
665
<DT><A NAME=d:headtarget HREF=#a:headtarget><STRONG>headtarget</STRONG></A>
666
<DD> If the edge has a <A HREF=#d:headURL>headURL</A>,
667
this attribute determines which window of the
669
for the URL. Setting it to "_graphviz" will open a new window if it
670
doesn't already exist, or reuse it if it does.
671
If undefined, the value of the <A HREF=#d:target>target</A> is used.
673
<DT><A NAME=d:headtooltip HREF=#a:headtooltip><STRONG>headtooltip</STRONG></A>
674
<DD> Tooltip annotation attached to the head of an edge. This is used only
675
if the edge has a <A HREF=#d:headURL>headURL</A> attribute.
677
<DT><A NAME=d:height HREF=#a:height><STRONG>height</STRONG></A>
678
<DD> Height of node, in inches. This is taken as the initial, minimum height
679
of the node. If <A HREF=#d:fixedsize><B>fixedsize</B></A> is true, this
680
will be the final height of the node. Otherwise, if the node label
681
requires more height to fit, the node's height will be increased to
682
contain the label. Note also that, if the output format is dot, the
683
value given to <B>height</B> will be the final value.
685
<DT><A NAME=d:href HREF=#a:href><STRONG>href</STRONG></A>
686
<DD> Synonym for <A HREF=#d:URL>URL</A>.
688
<DT><A NAME=d:label HREF=#a:label><STRONG>label</STRONG></A>
689
<DD> Text label attached to objects.
690
If a node's <A HREF=#d:shape>shape</A> is record, then the label can
691
have a <A HREF=shapes.html#record>special format</A>
692
which describes the record layout.
694
<DT><A NAME=d:labelangle HREF=#a:labelangle><STRONG>labelangle</STRONG></A>
695
<DD> This, along with <A HREF=#d:labeldistance>labeldistance</A>, determine
697
headlabel (taillabel) are placed with respect to the head (tail)
698
in polar coordinates. The origin in the coordinate system is
699
the point where the edge touches the node. The ray of 0 degrees
700
goes from the origin back along the edge, parallel to the edge
703
The angle, in degrees, specifies the rotation from the 0 degree ray,
704
with positive angles moving counterclockwise and negative angles
707
<DT><A NAME=d:labeldistance HREF=#a:labeldistance><STRONG>labeldistance</STRONG></A>
708
<DD> Multiplicative scaling factor adjusting the distance that
709
the headlabel(taillabel) is from the head(tail) node.
710
The default distance is 10 points. See <A HREF=#d:labelangle>labelangle</A>
713
<DT><A NAME=d:labelfloat HREF=#a:labelfloat><STRONG>labelfloat</STRONG></A>
714
<DD> If true, allows edge labels to be less constrained in position.
715
In particular, it may appear on top of other edges.
717
<DT><A NAME=d:labelfontcolor HREF=#a:labelfontcolor><STRONG>labelfontcolor</STRONG></A>
718
<DD> Color used for headlabel and taillabel.
719
If not set, defaults to edge's fontcolor.
721
<DT><A NAME=d:labelfontname HREF=#a:labelfontname><STRONG>labelfontname</STRONG></A>
722
<DD> Font used for headlabel and taillabel.
723
If not set, defaults to edge's fontname.
725
<DT><A NAME=d:labelfontsize HREF=#a:labelfontsize><STRONG>labelfontsize</STRONG></A>
726
<DD> Font size, in points, used for headlabel and taillabel.
727
If not set, defaults to edge's fontsize.
729
<DT><A NAME=d:labeljust HREF=#a:labeljust><STRONG>labeljust</STRONG></A>
730
<DD> Justification for cluster labels. If "r", the label
731
is right-justified within bounding rectangle; if "l", left-justified;
732
else the label is centered.
733
Note that a subgraph inherits attributes from its parent. Thus, if
734
the root graph sets <B>labeljust</B> to "l", the subgraph inherits
737
<DT><A NAME=d:labelloc HREF=#a:labelloc><STRONG>labelloc</STRONG></A>
738
<DD> Top/bottom placement of graph and cluster labels.
739
If the attribute is "t", place label at the top;
740
if the attribute is "b", place label at the bottom.
742
graph labels go on the bottom and cluster labels go on the top.
743
Note that a subgraph inherits attributes from its parent. Thus, if
744
the root graph sets <B>labelloc</B> to "b", the subgraph inherits
747
<DT><A NAME=d:landscape HREF=#a:landscape><STRONG>landscape</STRONG></A>
748
<DD> If true, the graph is rendered in landscape mode. Synonymous with
749
<A HREF=#d:rotate><TT>rotate=90</TT></A> or
750
<A HREF=#d:orientation><TT>orientation=landscape</TT></A>.
752
<DT><A NAME=d:layer HREF=#a:layer><STRONG>layer</STRONG></A>
753
<DD> Specifies layers in which the node or edge is present.
755
<DT><A NAME=d:layers HREF=#a:layers><STRONG>layers</STRONG></A>
756
<DD> Specifies a linearly ordered list of layer names attached to the graph
757
The graph is then output in separate layers. Only those components
758
belonging to the current output layer appear. For more information,
759
see the page <A HREF="http://www.graphviz.org/Documentation/html/layers/">How to use drawing layers (overlays)</A>.
761
<DT><A NAME=d:layersep HREF=#a:layersep><STRONG>layersep</STRONG></A>
762
<DD> Specifies the separator characters used to split the
763
<A HREF=#d:layers>layers </A>attribute into a list of layer names.
765
<DT><A NAME=d:len HREF=#a:len><STRONG>len</STRONG></A>
766
<DD> Preferred edge length, in inches.
768
<DT><A NAME=d:levelsgap HREF=#a:levelsgap><STRONG>levelsgap</STRONG></A>
769
<DD> Specifies strictness of level constraints in neato when <TT>mode="hier"</TT>.
770
Larger positive values mean stricter constraints, which demand more
771
separation between levels. On the other hand, negative values will relax
772
the constraints by allowing some overlap between the levels.
774
<DT><A NAME=d:lhead HREF=#a:lhead><STRONG>lhead</STRONG></A>
775
<DD> Logical head of an edge. When <A HREF=#d:compound><B>compound</B></A> is true,
776
if <B>lhead</B> is defined and is the name of a cluster containing
778
the edge is clipped to the boundary of the cluster.
779
See <A HREF=#h:undir_note>limitation</A>.
781
<DT><A NAME=d:lp HREF=#a:lp><STRONG>lp</STRONG></A>
782
<DD> Label position, in points.
784
<DT><A NAME=d:ltail HREF=#a:ltail><STRONG>ltail</STRONG></A>
785
<DD> Logical tail of an edge. When <A HREF=#d:compound><B>compound</B></A> is true,
786
if <B>ltail</B> is defined and is the name of a cluster
787
containing the real tail,
788
the edge is clipped to the boundary of the cluster.
789
See <A HREF=#h:undir_note>limitation</A>.
791
<DT><A NAME=d:margin HREF=#a:margin><STRONG>margin</STRONG></A>
792
<DD> For graphs, this sets x and y margins of canvas, in inches. If the margin
793
is a single double, both margins are set equal to the given value.
795
For nodes, this attribute specifies space left around the node's label.
796
By default, the value is <TT>0.11,0.055</TT>.
798
<DT><A NAME=d:maxiter HREF=#a:maxiter><STRONG>maxiter</STRONG></A>
799
<DD> Sets the number of iterations used.
801
<DT><A NAME=d:mclimit HREF=#a:mclimit><STRONG>mclimit</STRONG></A>
802
<DD> Multiplicative scale factor used to alter the MinQuit (default = 8)
803
and MaxIter (default = 24) parameters used during crossing
804
minimization. These correspond to the
805
number of tries without improvement before quitting and the
806
maximum number of iterations in each pass.
808
<DT><A NAME=d:mindist HREF=#a:mindist><STRONG>mindist</STRONG></A>
809
<DD> Specifies the minimum separation between all nodes.
811
<DT><A NAME=d:minlen HREF=#a:minlen><STRONG>minlen</STRONG></A>
812
<DD> Minimum edge length (rank difference between head and tail).
814
<DT><A NAME=d:mode HREF=#a:mode><STRONG>mode</STRONG></A>
815
<DD> Technique for optimizing the layout. If <B>mode</B> is <TT>"major"</TT>,
816
neato uses stress majorization. If <B>mode</B> is <TT>"KK"</TT>,
817
neato uses a version of the gradient descent method. The only advantage
818
to the latter technique is that it is sometimes appreciably faster for
819
small (number of nodes < 100) graphs. A significant disadvantage is that
822
There is a new, experimental mode in neato, "hier", which adds a top-down
823
directionality similar to the layout used in dot.
825
<DT><A NAME=d:model HREF=#a:model><STRONG>model</STRONG></A>
826
<DD> This value specifies how the distance matrix is computed for the input
827
graph. The distance matrix specifies the ideal distance between every
828
pair of nodes. neato attemps to find a layout which best achieves
829
these distances. By default, it uses the length of the shortest path,
830
where the length of each edge is given by its <A HREF=#d:len>len</A>
831
attribute. If <B>model</B> is <TT>"circuit"</TT>, neato uses the
833
model to compute the distances. This tends to emphasize clusters. If
834
<B>model</B> is <TT>"subset"</TT>, neato uses the subset model. This sets the
835
edge length to be the number of nodes that are neighbors of exactly one
836
of the end points, and then calculates the shortest paths. This helps
837
to separate nodes with high degree.
839
<DT><A NAME=d:nodesep HREF=#a:nodesep><STRONG>nodesep</STRONG></A>
840
<DD> Minimum space between two adjacent nodes in the same rank, in inches.
842
<DT><A NAME=d:nojustify HREF=#a:nojustify><STRONG>nojustify</STRONG></A>
843
<DD> By default, the justification of multi-line labels is done within the
844
largest context that makes sense. Thus, in the label of a polygonal
845
node, a left-justified line will align with the left side of the node
846
(shifted by the prescribed <A HREF=#d:margin>margin</A>).
847
In record nodes, left-justified
848
line will line up with the left side of the enclosing column of fields.
849
If <B>nojustify</B> is <TT>"true"</TT>, multi-line labels will be justified
850
in the context of itself. For example, if the attribute is set,
851
the first label line is long, and the second is shorter and left-justified,
852
the second will align with the left-most character in the first line,
853
regardless of how large the node might be.
855
<DT><A NAME=d:normalize HREF=#a:normalize><STRONG>normalize</STRONG></A>
856
<DD> If set, normalize coordinates of final
857
layout so that the first point is at the origin, and then rotate the
858
layout so that the first edge is horizontal.
860
<DT><A NAME=d:nslimit HREF=#a:nslimit><STRONG>nslimit</STRONG></A>
861
,<DT><A NAME=d:nslimit1 HREF=#a:nslimit1><STRONG>nslimit1</STRONG></A>
862
<DD> Used to set number of iterations in
863
network simplex applications. <B>nslimit</B> is used in
864
computing node x coordinates, <B>nslimit1</B> for ranking nodes.
865
If defined, # iterations = <B>nslimit(1)</B> * # nodes;
866
otherwise, # iterations = MAXINT.
868
<DT><A NAME=d:ordering HREF=#a:ordering><STRONG>ordering</STRONG></A>
869
<DD> If "out" for a graph G, and n is a node in G, then edges n->* appear
870
left-to-right in the same order in which they are defined.
871
If "in", the edges *->n appear
872
left-to-right in the same order in which they are defined for all
875
<DT><A NAME=d:orientation HREF=#a:orientation><STRONG>orientation</STRONG></A>
876
<DD> Angle, in degrees, used to rotate node shapes.
878
<DT><A NAME=dd:orientation HREF=#aa:orientation><STRONG>orientation</STRONG></A>
879
<DD> If "[lL]*", set graph orientation to landscape
880
Used only if <A HREF=#d:rotate><B>rotate</B></A> is not defined.
882
<DT><A NAME=d:outputorder HREF=#a:outputorder><STRONG>outputorder</STRONG></A>
883
<DD> Specify order in which nodes and edges are drawn.
885
<DT><A NAME=d:overlap HREF=#a:overlap><STRONG>overlap</STRONG></A>
886
<DD> Determines if and how node overlaps should be removed. Nodes are first
887
enlarged using the <A HREF=#d:sep><B>sep</B></A> attribute.
888
If "true" , overlaps are retained.
889
If the value is "scale", overlaps are removed by uniformly scaling in x and y.
890
If the value converts to "false", node overlaps are removed by a
891
Voronoi-based technique.
892
If the value is "scalexy", x and y are separately
893
scaled to remove overlaps.
894
If the value is "orthoxy" or "orthoyx", overlaps
895
are moved by optimizing two constraint problems, one for the x axis and
896
one for the y. The suffix indicates which axis is processed first.
897
If the value is "ortho", the technique is similar to "orthoxy" except a
898
heuristic is used to reduce the bias between the two passes.
899
If the value is "ortho_yx", the technique is the same as "ortho", except
900
the roles of x and y are reversed.
901
The values "portho", "porthoxy", "porthoxy", and "portho_yx" are similar
902
to the previous four, except only pseudo-orthogonal ordering is
905
If the value is "compress", the layout will be scaled down as much as
906
possible without introducing any overlaps, obviously assuming there are
909
Except for fdp, the layouts assume <TT>overlap="true"</TT> as the default.
910
Fdp first uses a number of passes using built-in, force-directed technique
911
to remove overlaps. Thus, fdp accepts <B>overlap</B> with an integer
912
prefix followed by a colon, specifying the number of tries. If there is
913
no prefix, no initial tries will be performed. If there is nothing following
914
a colon, none of the above methods will be attempted. By default, fdp
915
uses <TT>overlap="9:portho"</TT>. Note that <TT>overlap="true"</TT>,
916
<TT>overlap="0:true"</TT> and <TT>overlap="0:"</TT> all turn off all overlap
919
Except for the Voronoi method, all of these transforms preserve the
920
orthogonal ordering of the original layout. That is, if the x coordinates
921
of two nodes are originally the same, they will remain the same, and if
922
the x coordinate of one node is originally less than the x coordinate of
923
another, this relation will still hold in the transformed layout. The
924
similar properties hold for the y coordinates.
926
<B>NOTE</B>The methods "orthoxy" and "orthoyx" are still evolving. The
927
semantics of these may change, or these methods may disappear altogether.
929
<DT><A NAME=d:pack HREF=#a:pack><STRONG>pack</STRONG></A>
930
<DD> This is true if the value of pack is "true" (case-insensitive) or a
931
non-negative integer. If true, each connected component of the graph is
932
laid out separately, and then the graphs are packed tightly.
933
If pack has an integral value, this is used as the size (in points) of
934
a margin around each part; otherwise, a default margin of 8 is used.
935
If pack is interpreted as false, the entire graph is laid out together.
936
The granularity and method of packing is influenced by the
937
<A HREF=#d:packmode>packmode</A> attribute.
939
For layouts which always do packing, such a twopi, the <B>pack</B>
940
attribute is just used to set the margin.
942
<DT><A NAME=d:packmode HREF=#a:packmode><STRONG>packmode</STRONG></A>
943
<DD> This indicates the granularity and method used for packing
944
(cf. <A HREF=#k:packMode>packMode</A>). Note that defining
945
<B>packmode</B> will automatically turn on packing as though one had
946
set <B>pack=true</B>.
948
<DT><A NAME=d:page HREF=#a:page><STRONG>page</STRONG></A>
949
<DD> Width and height of output pages, in inches. If this is set and is
950
smaller than the size of the layout, a rectangular array of pages of
951
the specified page size is overlaid on the layout, with origins
952
aligned in the lower-left corner, thereby partitioning the layout
953
into pages. The pages are then produced one at a time, in
954
<A HREF=#d:pagedir>pagedir</A> order.
956
<DT><A NAME=d:pagedir HREF=#a:pagedir><STRONG>pagedir</STRONG></A>
957
<DD> If the <A HREF=#d:page>page</A> attribute is set and applicable,
958
this attribute specifies the order in which the pages are emitted.
959
This is limited to one of the 8 row or column major orders.
961
<DT><A NAME=d:pencolor HREF=#a:pencolor><STRONG>pencolor</STRONG></A>
962
<DD> Color used to draw the bounding box around a cluster.
963
If <B>pencolor</B> is not defined, <A HREF=#d:color><B>color</B></A> is
964
used. If this is not defined, <A HREF=#d:bgcolor>bgcolor</A> is used.
965
If this is not defined, the default is used.
967
Note that a cluster inherits the root graph's attributes if defined.
968
Thus, if the root graph has defined a <B>pencolor</B>, this will override a
969
<B>color</B> or <B>bgcolor</B> attribute set for the cluster.
971
<DT><A NAME=d:peripheries HREF=#a:peripheries><STRONG>peripheries</STRONG></A>
972
<DD> Set number of peripheries used in polygonal shapes and cluster
973
boundaries. Note that
974
<A HREF=shapes.html#epsf>user-defined shapes</A> are treated as a
975
form of box shape, so the default
976
peripheries value is 1 and the user-defined shape will be drawn in
977
a bounding rectangle. Setting <TT>peripheries=0</TT> will turn this off.
978
Also, 1 is the maximum peripheries value for clusters.
980
<DT><A NAME=d:pin HREF=#a:pin><STRONG>pin</STRONG></A>
981
<DD> If true and the node has a pos attribute on input, neato prevents the
982
node from moving from the input position. This property can also be specified
983
in the pos attribute itself (cf. the <A HREF=#d:point>point</A> type).
985
<DT><A NAME=d:pos HREF=#a:pos><STRONG>pos</STRONG></A>
986
<DD> Position of node, or spline control points, in points.
987
In neato and fdp, pos can be used to set initial position of a node.
988
Concerning this, see the <A HREF=command.html#d:s>-s</A> command line flag.
990
<DT><A NAME=d:quantum HREF=#a:quantum><STRONG>quantum</STRONG></A>
991
<DD> If <B>quantum</B> > 0.0, node label dimensions
992
will be rounded to integral multiples of the quantum.
994
<DT><A NAME=d:rank HREF=#a:rank><STRONG>rank</STRONG></A>
995
<DD> Rank constraints on the nodes in a subgraph.
996
If <B>rank</B>="same", all nodes are placed on the same rank.
997
If <B>rank</B>="min", all nodes are placed on the minimum rank.
998
If <B>rank</B>="source", all nodes are placed on the minimum rank, and
999
the only nodes on the minimum rank belong to some subgraph whose
1000
rank attribute is "source" or "min".
1001
Analogous criteria hold for <B>rank</B>="max" and <B>rank</B>="sink".
1003
minimum rank is topmost or leftmost, and the maximum rank is bottommost
1006
<DT><A NAME=d:rankdir HREF=#a:rankdir><STRONG>rankdir</STRONG></A>
1007
<DD> Sets direction of graph layout. For example, if <B>rankdir</B>="LR",
1008
and barring cycles, an edge <CODE>T -> H;</CODE> will go
1009
from left to right. By default, graphs are laid out from top to bottom.
1011
<DT><A NAME=d:ranksep HREF=#a:ranksep><STRONG>ranksep</STRONG></A>
1012
<DD> In dot, this the gives desired rank separation, in inches. This is
1013
the minimum vertical distance between the bottom of the nodes in one
1014
rank and the tops of nodes in the next. If the value
1015
contains "equally", the centers of all ranks are spaced equally apart.
1017
settings are possible, e.g., ranksep = "1.2 equally".
1018
In twopi, specifies radial separation of concentric circles.
1020
<DT><A NAME=d:ratio HREF=#a:ratio><STRONG>ratio</STRONG></A>
1021
<DD> Sets the aspect ratio (drawing height/drawing width) for the drawing.
1022
Note that this is adjusted before
1023
the <A HREF=#d:size><B>size</B></A> attribute constraints are enforced.
1025
If <B>ratio</B> is numeric, it is taken as the desired aspect ratio.
1026
Then, if the actual aspect ratio is less than the desired ratio,
1027
the drawing height is scaled up to achieve the
1028
desired ratio; if the actual ratio is greater than that desired ratio,
1029
the drawing width is scaled up.
1031
If <B>ratio</B> = "fill" and the <A HREF=#d:size><B>size</B></A>
1032
attribute is set, node positions are scaled, separately in both x
1033
and y, so that the final drawing exactly fills the specified size.
1035
If <B>ratio</B> = "compress" and the <A HREF=#d:size><B>size</B></A>
1036
attribute is set, dot attempts to compress the initial layout to fit
1037
in the given size. This achieves a tighter packing of nodes but
1038
reduces the balance and symmetry. This feature only works in dot.
1040
If <B>ratio</B> = "expand", the <A HREF=#d:size><B>size</B></A>
1041
attribute is set, and both the width and the height of the graph are
1042
less than the value in <A HREF=#d:size><B>size</B></A>, node positions are scaled
1043
uniformly until at least
1044
one dimension fits <A HREF=#d:size><B>size</B></A> exactly.
1045
Note that this is distinct from using <A HREF=#d:size><B>size</B></A> as the
1046
desired size, as here the drawing is expanded before edges are generated and
1047
all node and text sizes remain unchanged.
1049
If <B>ratio</B> = "auto", the <A HREF=#d:page><B>page</B></A>
1050
attribute is set and the graph cannot be drawn on a single page,
1051
then <A HREF=#d:size><B>size</B></A> is set to an ``ideal'' value.
1052
In particular, the size in a given dimension will be the smallest integral
1053
multiple of the page size in that dimension which is at least half the
1054
current size. The two dimensions are then scaled independently to the
1055
new size. This feature only works in dot.
1057
<DT><A NAME=d:rects HREF=#a:rects><STRONG>rects</STRONG></A>
1058
<DD> Rectangles for fields of records, in points.
1060
<DT><A NAME=d:regular HREF=#a:regular><STRONG>regular</STRONG></A>
1061
<DD> If true, force polygon to be regular.
1063
<DT><A NAME=d:remincross HREF=#a:remincross><STRONG>remincross</STRONG></A>
1064
<DD> If true and there are multiple clusters, run cross
1065
minimization a second time.
1067
<DT><A NAME=d:resolution HREF=#a:resolution><STRONG>resolution</STRONG></A>
1068
<DD> This is a synonym for the <A HREF=#d:dpi>dpi</A> attribute.
1070
<DT><A NAME=d:root HREF=#a:root><STRONG>root</STRONG></A>
1071
<DD> This specifies nodes to be used as the center of the
1072
layout and the root of the generated spanning tree. As a graph attribute,
1073
this gives the name of the node. As a node attribute (circo only), it
1074
specifies that the node should be used as a central node. In twopi,
1075
this will actually be the central node. In circo, the block containing
1076
the node will be central in the drawing of its connected component.
1078
twopi will pick a most central node, and circo will pick a random node.
1080
<DT><A NAME=d:rotate HREF=#a:rotate><STRONG>rotate</STRONG></A>
1081
<DD> If 90, set drawing orientation to landscape.
1083
<DT><A NAME=d:samehead HREF=#a:samehead><STRONG>samehead</STRONG></A>
1084
<DD> Edges with the same head and the same <B>samehead</B> value are aimed
1085
at the same point on the head.
1086
See <A HREF=#h:undir_note>limitation</A>.
1088
<DT><A NAME=d:sametail HREF=#a:sametail><STRONG>sametail</STRONG></A>
1089
<DD> Edges with the same tail and the same <B>sametail</B> value are aimed
1090
at the same point on the tail.
1091
See <A HREF=#h:undir_note>limitation</A>.
1093
<DT><A NAME=d:samplepoints HREF=#a:samplepoints><STRONG>samplepoints</STRONG></A>
1094
<DD> If the input graph defines the <A HREF=#d:vertices><B>vertices</B></A>
1095
attribute, and output is dot or xdot, this give
1096
the number of points used to represent circles and ellipses.
1097
It plays the same role in neato, when adjusting the layout to avoid
1100
<DT><A NAME=d:searchsize HREF=#a:searchsize><STRONG>searchsize</STRONG></A>
1101
<DD> During network simplex, maximum number of edges with negative cut values
1102
to search when looking for one with minimum cut value.
1104
<DT><A NAME=d:sep HREF=#a:sep><STRONG>sep</STRONG></A>
1105
<DD> Fraction to increase polygons (multiply
1106
coordinates by 1 + sep) for purposes of determining overlap. Guarantees
1107
a minimal non-zero distance between nodes.
1109
<DT><A NAME=d:shape HREF=#a:shape><STRONG>shape</STRONG></A>
1110
<DD> Set the shape of a node.
1112
<DT><A NAME=d:shapefile HREF=#a:shapefile><STRONG>shapefile</STRONG></A>
1113
<DD> If defined, shapefile specifies a file containing user-supplied node content.
1114
The <A HREF=#d:shape><B>shape</B></A> of the node is set to box.
1115
The image in the shapefile must be
1116
rectangular. The image formats supported as well as the precise semantics of
1117
how the file is used depends on the
1118
<A HREF="http://www.graphviz.org/cvs/doc/info/output.html">output format</A>. For further details, see
1119
<A HREF=http://www.graphviz.org/Documentation/html/shapehowto.html#ext_image>External PostScript files</A>.
1121
There is one exception to this usage.
1122
If <B>shape</B> is set to "epsf", shapefile gives
1123
a filename containing a definition of the node in PostScript.
1124
The graphics defined must be contain all of the
1125
node content, including any desired boundaries.
1126
For further details, see
1127
<A HREF=http://www.graphviz.org/Documentation/html/shapehowto.html#ext_ps>
1128
External PostScript files</A>.
1130
<DT><A NAME=d:showboxes HREF=#a:showboxes><STRONG>showboxes</STRONG></A>
1131
<DD> Print guide boxes in PostScript at the beginning of
1132
routesplines if 1, or at the end if 2. (Debugging)
1134
<DT><A NAME=d:sides HREF=#a:sides><STRONG>sides</STRONG></A>
1135
<DD> Number of sides if <A HREF=#d:shape><B>shape</B></A>=polygon.
1137
<DT><A NAME=d:size HREF=#a:size><STRONG>size</STRONG></A>
1138
<DD> Maximum width and height of drawing, in inches.
1139
If defined and the drawing is too large, the drawing is uniformly
1140
scaled down so that it fits within the given size.
1142
If <TT>size</TT> ends in an exclamation point (<TT>!</TT>),
1143
then it is taken to be
1144
the desired size. In this case, if both dimensions of the drawing are
1145
less than <TT>size</TT>, the drawing is scaled up uniformly until at
1146
least one dimension equals its dimension in <TT>size</TT>.
1148
Note that there is some interaction between the <B>size</B> and
1149
<A HREF=#d:ratio><B>ratio</B></A> attributes.
1151
<DT><A NAME=d:skew HREF=#a:skew><STRONG>skew</STRONG></A>
1152
<DD> Skew factor for <A HREF=#d:shape><B>shape</B></A>=polygon. Positive values
1153
skew top of polygon to right; negative to left.
1155
<DT><A NAME=d:splines HREF=#a:splines><STRONG>splines</STRONG></A>
1156
<DD> Controls how, and if, edges are represented. If true, edges are drawn as
1157
splines routed around nodes; if false, edges are drawn as line segments.
1158
(Note: at present (1 Jan 2006), setting <TT>splines=false</TT> has no
1160
If set to "", no edges are drawn at all.
1162
By default, the attribute is unset. How this is interpreted depends on
1163
the layout. For dot, the default is to draw edges as splines. For all
1164
other layouts, the default is to draw edges as line segments. Note that
1165
for these latter layouts, if <TT>splines="true"</TT>, this
1166
requires non-overlapping nodes (cf. <A HREF=#d:overlap><B>overlap</B></A>).
1167
If fdp is used for layout and <TT>splines="compound"</TT>, then the edges are
1168
drawn to avoid clusters as well as nodes.
1170
<DT><A NAME=d:start HREF=#a:start><STRONG>start</STRONG></A>
1171
<DD> Parameter used to determine the initial layout of nodes. By default,
1172
nodes are randomly placed in a unit square.
1173
The same seed is always used for the random number generator, so the
1174
initial placement is repeatable.
1176
<DT><A NAME=d:style HREF=#a:style><STRONG>style</STRONG></A>
1177
<DD> Set style for node or edge. For cluster subgraph, if "filled", the
1178
cluster box's background is filled.
1180
<DT><A NAME=d:stylesheet HREF=#a:stylesheet><STRONG>stylesheet</STRONG></A>
1181
<DD> A URL or pathname specifying an XML style sheet, used in SVG output.
1183
<DT><A NAME=d:tailURL HREF=#a:tailURL><STRONG>tailURL</STRONG></A>
1184
<DD> When the output format is imap or cmap, if <B>tailURL</B> is defined, it is
1185
output as part of the tail label of the edge.
1186
See <A HREF=#h:undir_note>limitation</A>.
1188
<DT><A NAME=d:tailclip HREF=#a:tailclip><STRONG>tailclip</STRONG></A>
1189
<DD> If true, the tail of an edge is clipped to the boundary of the tail node;
1190
otherwise, the end of the edge goes to the center of the node, or the
1191
center of a port, if applicable.
1193
<DT><A NAME=d:tailhref HREF=#a:tailhref><STRONG>tailhref</STRONG></A>
1194
<DD> Synonym for <A HREF=#d:tailURL>tailURL</A>.
1196
<DT><A NAME=d:taillabel HREF=#a:taillabel><STRONG>taillabel</STRONG></A>
1197
<DD> Text label to be placed near tail of edge.
1198
See <A HREF=#h:undir_note>limitation</A>.
1200
<DT><A NAME=d:tailport HREF=#a:tailport><STRONG>tailport</STRONG></A>
1201
<DD> Indicates where on the tail node to attach the tail of the edge.
1202
See <A HREF=#h:undir_note>limitation</A>.
1204
<DT><A NAME=d:tailtarget HREF=#a:tailtarget><STRONG>tailtarget</STRONG></A>
1205
<DD> If the edge has a <A HREF=#d:tailURL>tailURL</A>,
1206
this attribute determines which window of the
1208
for the URL. Setting it to "_graphviz" will open a new window if it
1209
doesn't already exist, or reuse it if it does.
1210
If undefined, the value of the <A HREF=#d:target>target</A> is used.
1212
<DT><A NAME=d:tailtooltip HREF=#a:tailtooltip><STRONG>tailtooltip</STRONG></A>
1213
<DD> Tooltip annotation attached to the tail of an edge. This is used only
1214
if the edge has a <A HREF=#d:tailURL>tailURL</A> attribute.
1216
<DT><A NAME=d:target HREF=#a:target><STRONG>target</STRONG></A>
1217
<DD> If the object has a URL, this attribute determines which window
1218
of the browser is used for the URL.
1219
See <A HREF="http://www.w3.org/TR/html401/present/frames.html#adef-target">W3C documentation</A>.
1221
<DT><A NAME=d:tooltip HREF=#a:tooltip><STRONG>tooltip</STRONG></A>
1222
<DD> Tooltip annotation attached to the node or edge. If unset, Graphviz
1223
will use the object's <A HREF=#d:label>label</A> if defined.
1224
Note that if the label is a record specification or an HTML-like
1225
label, the resulting tooltip may be unhelpful. In this case, if
1226
tooltips will be generated, the user should set a <TT>tooltip</TT>
1227
attribute explicitly.
1229
<DT><A NAME=d:truecolor HREF=#a:truecolor><STRONG>truecolor</STRONG></A>
1230
<DD> If set explicitly to true or false, the value determines whether or not
1231
internal bitmap rendering relies on a truecolor color model or uses
1233
If the attribute is unset, truecolor is not used
1234
unless there is a <A HREF=#d:shapefile>shapefile</A> property
1235
for some node in the graph.
1236
The output model will use the input model when possible.
1238
Use of color palettes results in less memory usage during creation of the
1239
bitmaps and smaller output files.
1241
Usually, the only time it is necessary to specify the truetype model
1242
is if the graph uses more than 256 colors.
1243
However, if one uses <A HREF=#d:bgcolor>bgcolor</A>=transparent with
1244
a color palette, font
1245
antialiasing can show up as a fuzzy white area around characters.
1246
Using <B>truecolor</B>=true avoids this problem.
1248
<DT><A NAME=d:vertices HREF=#a:vertices><STRONG>vertices</STRONG></A>
1249
<DD> If the input graph defines this attribute, the node is polynomial,
1250
and output is dot or xdot, this attribute provides the
1251
coordinates of the vertices of the node's polynomial, in inches.
1252
If the node is an ellipse or circle, the
1253
<A HREF=#d:samplepoints>samplepoints</A> attribute affects
1256
<DT><A NAME=d:viewport HREF=#a:viewport><STRONG>viewport</STRONG></A>
1257
<DD> Clipping window on final drawing.
1259
<DT><A NAME=d:voro_margin HREF=#a:voro_margin><STRONG>voro_margin</STRONG></A>
1260
<DD> Factor to scale up drawing to allow margin for expansion in
1261
Voronoi technique. dim' = (1+2*margin)*dim.
1263
<DT><A NAME=d:weight HREF=#a:weight><STRONG>weight</STRONG></A>
1264
<DD> Weight of edge. In dot, the heavier the weight, the shorter,
1265
straighter and more vertical the edge is. In neato, the heavier the
1266
weight, the more neato will try to place the end points so that the
1267
length of the edge is <A HREF=#d:len>len</A>.
1269
<DT><A NAME=d:width HREF=#a:width><STRONG>width</STRONG></A>
1270
<DD> Width of node, in inches. This is taken as the initial, minimum width
1271
of the node. If <A HREF=#d:fixedsize><B>fixedsize</B></A> is true, this
1272
will be the final width of the node. Otherwise, if the node label
1273
requires more width to fit, the node's width will be increased to
1274
contain the label. Note also that, if the output format is dot, the
1275
value given to <B>width</B> will be the final value.
1277
<DT><A NAME=d:z HREF=#a:z><STRONG>z</STRONG></A>
1278
<DD> Provides z coordinate value for 3D layouts and displays. If the
1279
graph has <A HREF=#d:dim><B>dim</B></A> set to 3 (or more),
1280
neato will use a node's <B>z</B> value
1281
for the z coordinate of its initial position if
1282
its <A HREF=#d:pos><B>pos</B></A> attribute is also defined.
1284
Even if no <B>z</B> values are specified in the input, it is necessary to
1285
declare a <B>z</B> attribute for nodes, e.g, using <TT>node[z=""]</TT>
1286
in order to get z values on output.
1287
Thus, setting <TT>dim=3</TT> but not declaring <B>z</B> will
1288
cause <TT>neato -Tvrml</TT> to
1289
layout the graph in 3D but project the layout onto the xy-plane
1290
for the rendering. If the <B>z</B> attribute is declared, the final rendering
1295
<H1>Attribute Type Descriptions</H1>
1296
The following list gives the legal strings corresponding to values of
1299
<DT><A NAME=k:arrowType><STRONG>arrowType</STRONG></A>
1301
<TR><TD>"normal"<TD><IMG SRC="a_normal.gif">
1302
<TD>"inv"<TD><IMG SRC="a_inv.gif"></TR>
1303
<TR><TD>"dot"<TD><IMG SRC="a_dot.gif">
1304
<TD>"invdot"<TD><IMG SRC="a_invdot.gif"></TR>
1305
<TR><TD>"odot"<TD><IMG SRC="a_odot.gif">
1306
<TD>"invodot"<TD><IMG SRC="a_invodot.gif"></TR>
1307
<TR><TD>"none"<TD><IMG SRC="a_none.gif">
1308
<TD>"tee"<TD><IMG SRC="a_tee.gif"></TR>
1309
<TR><TD>"empty"<TD><IMG SRC="a_empty.gif">
1310
<TD>"invempty"<TD><IMG SRC="a_invempty.gif"></TR>
1311
<TR><TD>"diamond"<TD><IMG SRC="a_diamond.gif">
1312
<TD>"odiamond"<TD><IMG SRC="a_odiamond.gif"></TR>
1313
<TR><TD>"ediamond"<TD><IMG SRC="a_ediamond.gif">
1314
<TD>"crow"<TD><IMG SRC="a_crow.gif"></TR>
1315
<TR><TD>"box"<TD><IMG SRC="a_box.gif">
1316
<TD>"obox"<TD><IMG SRC="a_obox.gif"></TR>
1317
<TR><TD>"open"<TD><IMG SRC="a_open.gif">
1318
<TD>"halfopen"<TD><IMG SRC="a_halfopen.gif"></TR>
1319
<TR><TD>"vee"<TD><IMG SRC="a_open.gif">
1322
These are the basic set of backward-compatible arrow shapes. In addition,
1323
there is a grammar of <A HREF=arrows.html>arrow shapes</A>
1324
which can be used to describe a collection of 1260 arrow shapes as
1325
modifications of a primitive set of 9 arrows. The basic arrows shown
1326
above contain all of the primitive shapes
1327
(<TT>box</TT>, <TT>crow</TT>, <TT>diamond</TT>,
1328
<TT>dot</TT>, <TT>inv</TT>, <TT>none</tt>,
1329
<TT>normal</tt>, <TT>tee</TT>, <TT>vee</TT>)
1330
plus ones that can be derived from the grammar
1331
(<TT>odot</TT>, <TT>invdot</TT>, <TT>invodot</TT>,
1332
<TT>obox</TT>, <TT>odiamond</TT>)
1333
plus some supported as special cases for backward-compatibility
1334
(<TT>ediamond</TT>, <TT>open</TT>, <TT>halfopen</TT>,
1335
<TT>empty</TT>, <TT>invempty</TT>).
1337
<DT><A NAME=k:clusterMode><STRONG>clusterMode</STRONG></A>
1338
<DD>"local","global","none"
1340
<DT><A NAME=k:color><STRONG>color</STRONG></A>
1341
<DD>Colors can be specified using one of four formats.
1342
<TABLE><TR><TD>"#%2x%2x%2x"<TD>Red-Green-Blue (RGB)</TR>
1343
<TR><TD>"#%2x%2x%2x%2x"<TD>Red-Green-Blue-Alpha (RGBA)</TR>
1344
<TR><TD>H[, ]+S[, ]+V<TD>Hue-Saturation-Value (HSV) 0.0 <= H,S,V <= 1.0</TR>
1345
<TR><TD>string<TD><A HREF=colors.html>color name</A></TR></TABLE>
1346
The specification for the RGB and RGBA formats are the format strings used by
1347
<TT>sscanf</TT> to scan the color value. Thus, these values have the form
1348
"#RGB" or "#RGBA", where R, G, B, and A each consist of 2 hexidecimal
1349
digits, and can be separated by whitespace. HSV colors have the form of 3
1350
numbers between 0 and 1, separated by whitespace or commas.
1352
String-valued color specifications are case-insensitive and interpreted
1353
in the context of the current color scheme, as specified by the
1354
<A HREF=#d:colorscheme>colorscheme</A> attribute. If this is undefined,
1355
the X11 naming scheme will be used.
1356
An initial <TT>"/"</TT> character can be used to override the use of
1357
the <TT>colorscheme</TT> attribute. In particular, a single initial
1358
<TT>"/"</TT> will cause the string to be evaluated using the default
1359
X11 naming. If the color value has the form <TT>"/ssss/yyyy"</TT>,
1360
the name <TT>yyyy</TT> is interpreted using the schema <TT>ssss</TT>.
1361
If the color scheme name is empty, i.e., the color has the
1362
form <TT>"//yyyy"</TT>, the <TT>colorscheme</TT> attribute is used.
1363
Thus, the forms <TT>"yyyy"</TT> and <TT>"//yyyy"</TT> are
1365
<P>At present, Graphviz recognizes the default color scheme <TT>X11</TT>,
1366
and the <A HREF="http://www.personal.psu.edu/faculty/c/a/cab38/ColorBrewer/ColorBrewer_intro.html">Brewer color schemes</A>. Please note that Brewer
1367
color schemes are covered by this <A HREF=colors.html#brewer_license>license</A>.
1371
<TR><TH>Color<TH>RGB<TH>HSV<TH>String</TR>
1372
<TR><TD align=center bgcolor=#ffffff>White<TD>"#ffffff"<TD>"0.000 0.000 1.000"<TD>"white"</TR>
1373
<TR><TD align=center bgcolor=#000000><font color=white>Black</font><TD>"#000000"<TD>"0.000 0.000 0.000"<TD>"black"</TR>
1374
<TR><TD align=center bgcolor=#ff0000>Red<TD>"#ff0000"<TD>"0.000 1.000 1.000"<TD>"red"</TR>
1375
<TR><TD align=center bgcolor=#40e0d0>Turquoise<TD>"#40e0d0"<TD>"0.482 0.714 0.878"<TD>"turquoise"</TR>
1376
<TR><TD align=center bgcolor=#a0522d>Sienna<TD>"#a0522d"<TD>"0.051 0.718 0.627"<TD>"sienna"</TR>
1379
Note that some output formats, e.g., <A HREF="output.html#a:mif">mif</A>,
1380
only support a limited number of specific colors.
1382
The string value <TT>transparent</TT> can be used to indicate no color.
1383
This is only available in the output formats
1384
ps, svg, fig, vmrl, and the bitmap formats. It can be used whenever a
1385
color is needed but is most useful with
1386
the <A HREF=#d:bgcolor>bgcolor</A> attribute.
1387
Usually, the same effect can be achieved by setting
1388
<A HREF=#d:style>style</A> to <TT>invis</TT>.
1390
<DT><A NAME=k:colorList><STRONG>colorList</STRONG></A>
1391
<DD>A colon-separated list of color values: <I>C</I>(:<I>C</I>)*
1392
where each <I>C</I> is a <A HREF=#k:color>color</A> value.
1394
<DT><A NAME=k:dirType><STRONG>dirType</STRONG></A>
1395
<DD>For an edge <CODE>T -> H;</CODE>
1397
<TR><TD>"forward"<TD><IMG SRC="forward.gif">
1398
<TD>"back"<TD><IMG SRC="back.gif"></TR>
1399
<TR><TD>"both"<TD><IMG SRC="both.gif">
1400
<TD>"none"<TD><IMG SRC="nohead.gif"></TR>
1402
For undirected edges <CODE>T -- H;</CODE>, one of the nodes, usually
1403
the righthand one, is treated as the head for the purpose of
1404
interpreting "forward" and "back".
1406
<DT><A NAME=k:escString><STRONG>escString</STRONG></A>
1407
<DD>string allowing escape sequences which are replaced according
1409
For node attributes, the substring "\N" is replaced by the name of the node,
1410
and the substring "\G" by the name of the graph.
1411
For graph or cluster attributes, the substring "\G" is replaced by the
1412
name of the graph or cluster.
1413
For edge attributes, the substring "\E" is replaced by the name of the edge,
1414
the substring "\G" is replaced by the name of the graph or cluster,
1415
and the substrings "\T" and "\H" by the names of
1416
the tail and head nodes, respectively.
1417
The name of an edge is the string formed from the name of the
1418
tail node, the appropriate edge operator ("--" or "->") and the name of the
1421
In addition, if the associated attribute is
1422
<A HREF=#a:label>label</A>,
1423
<A HREF=#a:headlabel>headlabel</A> or <A HREF=#a:taillabel>taillabel</A>,
1424
the escape sequences "\n", "\l" and "\r"
1425
divide the label into lines, centered, left-justified, and right-justified,
1428
<DT><A NAME=k:layerList><STRONG>layerList</STRONG></A>
1429
<DD>list of strings separated by characters from the
1430
<A HREF=#a:layersep>layersep</A> attribute (by default, colons,
1431
tabs or spaces), defining <A HREF=#a:layer>layer</A>
1432
names and implicitly numbered 1,2,...
1434
<DT><A NAME=k:layerRange><STRONG>layerRange</STRONG></A>
1435
<DD>layerId or layerId<B>s</B>layerId,<BR> where layerId = "all",
1436
a decimal integer or a <A HREF=#a:layer>layer</A> name.
1437
(An integer i corresponds to layer i.)
1438
The string <B>s</B> consists of 1 or more separator characters specified
1439
by the <A HREF=#a:layersep>layersep</A> attribute.
1441
<DT><A NAME=k:lblString><STRONG>lblString</STRONG></A>
1442
<DD>an <A HREF=#k:escString>escString</A>
1443
or an <A HREF=shapes.html#html>HTML label</A>.
1445
<DT><A NAME=k:outputMode><STRONG>outputMode</STRONG></A>
1446
<DD>"breadthfirst","nodesfirst","edgesfirst"
1447
These specify the order in which nodes and edges are drawn in concrete
1448
output. The default "breadthfirst" is the simplest, but when the graph
1449
layout does not avoid edge-node overlap, this mode will sometimes have
1450
edges drawn over nodes and sometimes on top of nodes. If the mode
1451
"nodesfirst" is chosen, all nodes are drawn first, followed by the
1452
edges. This guarantees an edge-node overlap will not be mistaken for
1453
an edge ending at a node. On the other hand, usually for aesthetic
1454
reasons, it may be desirable that all edges appear beneath nodes, even
1455
if the resulting drawing is ambiguous. This can be achieved by choosing
1458
<DT><A NAME=k:packMode><STRONG>packMode</STRONG></A>
1459
<DD>"node","clust","graph"
1460
These specify the granularity of packing connected components when
1461
the <A HREF=#d:pack>pack</A> attribute is true. A value of "node" causes
1462
packing at the node and edge label, with no overlapping of these objects.
1463
This produces a layout with the least area, but it also allows interleaving,
1464
where a node of one component may lie between two nodes in another
1465
component. A value of "graph" does a packing using the bounding box of the
1466
component. Thus, there will be a rectangular region around a component
1467
free of elements of any other component.
1468
A value of "clust" guarantees that top-level clusters are kept intact.
1469
What effect a value has also depends on the layout algorithm. For
1470
example, neato does not support clusters, so a value of "clust" will
1471
have the same effect as the default "node" value.
1473
<DT><A NAME=k:pagedir><STRONG>pagedir</STRONG></A>
1474
<DD>"BL", "BR", "TL", "TR", "RB", "RT", "LB", "LT".
1475
These specify the 8 row or column major orders for traversing a
1476
rectangular array, the first character corresponding to the major
1477
order and the second to the minor order. Thus, for "BL", the
1478
major order is from bottom to top, and the minor order is from left
1479
to right. This means the bottom row is traversed first, from left
1480
to right, then the next row up, from left to right, and so on,
1481
until the topmost row is traversed.
1483
<DT><A NAME=k:point><STRONG>point</STRONG></A>
1484
<DD>"%f,%f"('!') representing the point (x,y). The
1485
optional '!' indicates the
1486
node position should not change (input-only).
1488
If <A HREF=#d:dim>dim</A> is 3 or more, <B>point</B> may also have
1489
the format "%f,%f,%f"('!') to represent the point (x,y,z).
1491
<DT><A NAME=k:pointf><STRONG>pointf</STRONG></A>
1492
<DD>"%lf,%lf" representing the point (x,y).
1494
<DT><A NAME=k:pointfList><STRONG>pointfList</STRONG></A>
1495
<DD>list of pointf, separated by spaces.
1497
<DT><A NAME=k:portPos><STRONG>portPos</STRONG></A>
1498
<DD>modifier indicating where on a node an edge should be aimed.
1499
It has the form <TT><I>portname</I>[:<I>compass_point</I>]</TT>
1500
or <TT><I>compass_point</I></TT>.
1501
If the first form is used, the corresponding node must either have
1502
<A HREF=shapes.html#record>record</A> shape with one of its fields
1503
having the given <I>portname</I>,
1504
or have an <A HREF=shapes.html#html>HTML-like label</A>, one of
1505
whose components has a <TT>PORT</TT> attribute set to <I>portname</I>.
1506
In this case, the edge is aimed for the center of the corresponding
1509
If a compass point is used, it must have the form
1510
<TT>"n","ne","e","se","s","sw","w","nw"</TT>. This modifies the edge
1511
placement to aim for the corresponding compass point on the port or,
1512
in the second form where no <I>portname</I> is supplied, on the node
1515
This attribute can be attached to an edge using the
1516
<A HREF=#k:headport>headport</A> and
1517
<A HREF=#k:tailport>tailport</A> attributes, or as part of the
1518
edge description as in
1520
<TT>node1:port1 -> node2:port5:nw;</TT>
1523
<DT><A NAME=k:rankType><STRONG>rankType</STRONG></A>
1524
<DD>"same", "min", "source", "max", "sink"
1526
<DT><A NAME=k:rankdir><STRONG>rankdir</STRONG></A>
1527
<DD>"TB", "LR", "BT", "RL", corresponding to directed graphs drawn
1528
from top to bottom, from left to right, from bottom to top, and from
1529
right to left, respectively.
1531
<DT><A NAME=k:rect><STRONG>rect</STRONG></A>
1532
<DD>"%d,%d,%d,%d" The rect llx,lly,urx,ury gives the coordinates, in
1533
points, of the lower-left corner (llx,lly) and the upper-right corner
1536
<DT><A NAME=k:shape><STRONG>shape</STRONG></A>
1537
<DD>A string specifying the <A HREF=shapes.html>shape</A> of a node.
1539
main types of shapes :
1540
<A HREF=shapes.html#polygon>polygon-based</A>,
1541
<A HREF=shapes.html#record>record-based</A> and
1542
<A HREF=shapes.html#epsf>user-defined</A>.
1544
<DT><A NAME=k:splineType><STRONG>splineType</STRONG></A>
1545
<DD>spline ( ';' spline )*<BR>
1547
<TR><TD ALIGN=right>where spline<TD>=<TD>(endp)? (startp)? point (triple)+</TR>
1548
<TR><TD ALIGN=right>and triple<TD>=<TD>point point point</TR>
1549
<TR><TD ALIGN=right>and endp<TD>=<TD>"e,%d,%d"</TR>
1550
<TR><TD ALIGN=right>and startp<TD>=<TD>"s,%d,%d"</TR>
1552
If a spline has points p<SUB>1</SUB> p<SUB>2</SUB> p<SUB>3</SUB> ... p<SUB>n</SUB>, (n = 1 (mod 3)), the points
1553
correspond to the control points of a B-spline from p<SUB>1</SUB> to p<SUB>n</SUB>. If startp
1554
is given, it touches one node of the edge, and the arrowhead
1555
goes from p<SUB>1</SUB> to startp. If startp is not given, p<SUB>1</SUB> touches a node.
1556
Similarly for p<SUB>n</SUB> and endp.
1558
<DT><A NAME=k:startType><STRONG>startType</STRONG></A>
1559
<DD>has the syntax <TT>[<I>style</I>][<I>seed</I>]</TT>.
1561
If <I>style</I> is present, it must be one of the strings <TT>"regular"</TT>,
1562
<TT>"self"</TT>, or <TT>"random"</TT>. In the first case, the nodes are
1563
placed regularly about a circle. In the second case,
1564
an abbreviated version of neato is run to obtain the initial layout.
1565
In the last case, the nodes are placed randomly in a unit square. This
1568
If <I>seed</I> is present, it specifies a seed for the random number
1569
generator. If <I>seed</I> is a positive number, this is used as the
1570
seed. If it is anything else,
1571
the current time, and possibly the process id, is used to pick a seed,
1572
thereby making the choice more random. In this case, the seed value
1573
is stored in the graph.
1575
Note that input positions, specified by a node's
1576
<A HREF=#d:pos>pos</A>
1577
attribute, are only used when the style is <TT>"random"</TT>.
1579
<DT><A NAME=k:style><STRONG>style</STRONG></A>
1580
<DD>styleItem ( ',' styleItem )*<BR>
1582
<TR><TD ALIGN=right>where styleItem<TD>=<TD>name or name'('args')'</TR>
1583
<TR><TD ALIGN=right>and args<TD>=<TD>name ( ',' name )*</TR>
1584
<TR><TD ALIGN=right>and name<TD>=<TD>[^)(, ][^)(,]*</TR>
1586
Note that whitespace characters are ignored, except for names which
1588
name cannot contain any comma, or left or right parenthesis, and it cannot
1589
begin with a whitespace character.
1591
At present, the recognized style names are
1592
"dashed", "dotted", "solid", "invis" and "bold" for nodes and edges,
1593
and "filled", "diagonals" and "rounded" for nodes only.
1594
The styles "filled" and "rounded" are recognized for clusters.
1595
Additional styles are available in
1596
device-dependent form. Style lists are passed to device drivers, which
1597
can use this to generate appropriate output.
1599
The <A NAME=d:setlinewidth><TT>setlinewidth</TT></A> style value can be
1600
used for more control over the width of edges and node borders than is
1601
allowed by <TT>bold</TT>. This style value takes an argument, specifying the
1602
width of the line in points. For example, <TT>style="bold"</TT> is
1603
equivalent to <TT>style="setlinewidth(2)"</TT>.
1605
<DT><A NAME=k:viewPort><STRONG>viewPort</STRONG></A>
1606
<DD>"%lf,%lf,%lf,%lf,%lf" The viewPort "W,H,Z,x,y"
1607
specifies a viewport for the final image. The pair (W,H) gives the
1608
dimensions (width and height) of the viewport image, in pixels.
1609
Z is the zoom factor, i.e., 1 point corresponds to Z pixels.
1610
For example, use Z=1.34 (= 96/72) with a screen resolution of 96dpi to
1611
convert 1 inch (72 points) in the graph to 1 inch on the screen.
1612
The pair (x,y) give the position in the graph, in points, of the center
1613
of the viewport. To focus on a particular node, (x,y) can be set to the
1614
<A HREF=#a:pos>pos</A> attribute "x,y" of the node.
1615
To center on the whole graph, use (bbx/2,bby/2), where "bbx,bby" is the
1616
value of the bounding box attribute <A HREF=#a:bb>bb</A>.