wolffd@0: Quick Reference Guide for GraphViz wolffd@0: 20 February 2002 wolffd@0: wolffd@0: wolffd@0: Command-line Invocation wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: All GraphViz programs have a similar invocation: wolffd@0: cmd [ flags ] [ input files ] wolffd@0: If no input files are supplied, the program reads from stdin. wolffd@0: wolffd@0: Flags wolffd@0: wolffd@0: -Gname=value wolffd@0: Set a graph attribute. wolffd@0: -Nname=value wolffd@0: Set a default node attribute. wolffd@0: -Ename=value wolffd@0: Set a default edge attribute. wolffd@0: -Tformat wolffd@0: Set output language to one of the supported formats. By default, wolffd@0: attributed dot is produced. wolffd@0: -V wolffd@0: Emit version information and exit. wolffd@0: -llibfile wolffd@0: User-supplied, device-dependent library files. Multiple libraries may wolffd@0: be given. These names are passed to the code generator at the beginning wolffd@0: of output. wolffd@0: -n[num] wolffd@0: Sets no-op flag in neato. If set, neato assumes nodes have already been wolffd@0: positioned and have a pos attribute giving this position. It then just wolffd@0: computes the edge layouts and emits the graph in the appropriate wolffd@0: format. If num is supplied and > 1, neato checks for previously wolffd@0: positioned edges, with control points provided in the pos attribute. It wolffd@0: uses these if given; otherwise, it computes the edge layout. wolffd@0: -ooutfile wolffd@0: Write output to file outfile. By default, output goes to stdout. wolffd@0: -s[scale] wolffd@0: Set input scale to scale. If this value is omitted, 72.0 is used. This wolffd@0: number is used to convert the point coordinate units used in the pos wolffd@0: attribute into inches. For example, dot -Tdot produces pos values in wolffd@0: points, with 72 per inch. Thus, to use this output as input to neato wolffd@0: -n, one needs -s (equivalently, -s72). wolffd@0: -v wolffd@0: Verbose mode wolffd@0: -x wolffd@0: In neato, on input, prune isolated nodes and peninsulas. This removes wolffd@0: uninteresting graph structure and produces a less cluttered drawing. wolffd@0: wolffd@0: Note that the file contents override the -G, -N and -E flags. In addition, wolffd@0: these flags cause the related attributes to be permanently attached to the wolffd@0: graph. Thus, if attributed dot is used for output, the graph will have these wolffd@0: attributes. wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: wolffd@0: The DOT Language wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: digraph G {foo -> bar; ... } or graph G { foo -- bar; ...} wolffd@0: wolffd@0: To connect all pairs: wolffd@0: {foo bar}->{baz bart} wolffd@0: wolffd@0: To make a chain of links: wolffd@0: foo->bar->baz wolffd@0: wolffd@0: Commas inside [...] and semicolons inside {...} are optional. wolffd@0: wolffd@0: Quotes are needed on attribute values to protect spaces, commas, periods, etc. wolffd@0: wolffd@0: // C++ like comment: to end of line wolffd@0: /* C-like comment: between delimiters */ wolffd@0: wolffd@0: For a complete language description, see wolffd@0: wolffd@0: http://www.research.att.com/~erg/graphviz/info/lang.html wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: wolffd@0: Attributes wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: wolffd@0: Name Used By Type Default Minimum Notes wolffd@0: Damping G double 0.99 0.0 neato only wolffd@0: Epsilon G double (.0001 * # nodes) neato only wolffd@0: URL ENGC string wolffd@0: arrowhead E arrowType normal wolffd@0: arrowsize E double 1.0 0.0 wolffd@0: arrowtail E arrowType normal wolffd@0: bb G rect write-only wolffd@0: bgcolor G color wolffd@0: bottomlabel N string "" wolffd@0: center G bool false wolffd@0: clusterrank G clusterMode local dot only wolffd@0: color ENC color black wolffd@0: comment ENG string "" wolffd@0: compound G bool false dot only wolffd@0: concentrate G bool false dot only wolffd@0: constraint E bool true dot only wolffd@0: decorate E bool false wolffd@0: wolffd@0: dir E dirType forward(directed) wolffd@0: none(undirected) wolffd@0: distortion N double 0.0 -100.0 wolffd@0: wolffd@0: fillcolor NC color lightgrey(nodes) wolffd@0: black(clusters) wolffd@0: fixedsize N bool false wolffd@0: fontcolor ENGC color black wolffd@0: fontname ENGC string "Times-Roman" wolffd@0: fontpath G string "" wolffd@0: fontsize ENGC double 14.0 1.0 wolffd@0: group N string "" dot only wolffd@0: headURL E string "" wolffd@0: headlabel E string "" wolffd@0: headport E portPos center wolffd@0: height N double 0.5 0.02 wolffd@0: K G double 1.0 0.0 sfdp only wolffd@0: wolffd@0: label ENGC string "" wolffd@0: "\N" (nodes) wolffd@0: labelangle E double -25.0 -180.0 wolffd@0: labeldistance E double 1.0 0.0 wolffd@0: labelfloat E bool false wolffd@0: labelfontcolor E color black wolffd@0: labelfontname E string "Times-Roman" wolffd@0: labelfontsize E double 11.0 1.0 wolffd@0: labeljust C string "" dot only wolffd@0: wolffd@0: labelloc GC string "t"(clusters) dot only wolffd@0: "b"(root graphs) wolffd@0: layer EN layerRange "" wolffd@0: layers G layerList "" wolffd@0: len E double 1.0 neato only wolffd@0: levels G int MAXINT 0 sfdp only wolffd@0: lhead E string "" dot only wolffd@0: lp EGC point write-only wolffd@0: ltail E string "" dot only wolffd@0: wolffd@0: margin G double wolffd@0: pointf wolffd@0: maxiter G int MAXINT neato only wolffd@0: mclimit G double 1.0 dot only wolffd@0: minlen E int 1 0 dot only wolffd@0: model G string "" neato only wolffd@0: nodesep G double 0.25 0.02 dot only wolffd@0: normalize G bool false neato only wolffd@0: nslimit wolffd@0: nslimit1 G double dot only wolffd@0: ordering G string "" dot only wolffd@0: orientation N double 0.0 360.0 wolffd@0: orientation G string "" wolffd@0: wolffd@0: overlap G string "" neato/sfdp only wolffd@0: bool wolffd@0: page G pointf wolffd@0: pagedir G pagedir BL wolffd@0: peripheries N int 0 wolffd@0: pin N bool neato only wolffd@0: wolffd@0: pos EN point wolffd@0: splineType wolffd@0: quadtree G string "" sfdp only wolffd@0: quantum G double 0.0 0.0 wolffd@0: rank S rankType dot only wolffd@0: rankdir G rankdir TB dot only wolffd@0: ranksep G double 0.5 0.02 wolffd@0: ratio G double wolffd@0: rects N rect write-only wolffd@0: regular N bool false wolffd@0: remincross G bool false dot only wolffd@0: repulsiveforce G double 1 0.0 sfdp only wolffd@0: rotate G int 0 wolffd@0: samehead E string "" dot only wolffd@0: sametail E string "" dot only wolffd@0: samplepoints G int 8 wolffd@0: searchsize G int 30 dot only wolffd@0: sep G double 0.01 neato only wolffd@0: shape N shape ellipse wolffd@0: shapefile N string "" wolffd@0: showboxes ENG int 0 0 dot only wolffd@0: sides N int 4 0 wolffd@0: size G pointf wolffd@0: skew N double 0.0 -100.0 wolffd@0: smoothing G string "" sfdp only wolffd@0: splines G bool false neato only wolffd@0: wolffd@0: start G string "" neato only wolffd@0: int wolffd@0: style ENC style wolffd@0: styleheet G style wolffd@0: tailURL E string "" wolffd@0: taillabel E string "" wolffd@0: tailport E portPos center wolffd@0: toplabel N string "" wolffd@0: vertices N pointfList write-only wolffd@0: voro_margin G double 0.05 0.0 neato only wolffd@0: w E double 1.0 neato only wolffd@0: wolffd@0: weight E double 1.0 0(dot) wolffd@0: 1(neato) wolffd@0: width N double 0.75 0.01 wolffd@0: wolffd@0: z N double 0.0 -MAXFLOAT wolffd@0: -1000 wolffd@0: ------------------------------------------------------ wolffd@0: For the bool type, TRUE values are represented by "true" (case-insensitive) wolffd@0: and any non-zero integer, and FALSE values by "false" (case-insensitive) and wolffd@0: zero. wolffd@0: wolffd@0: In the Used By field, the characters E, N, G and C represent edges, nodes, wolffd@0: the root graph and cluster subgraphs, respectively. This field indicates wolffd@0: which graph component uses the attribute. wolffd@0: ------------------------------------------------------------------------ wolffd@0: wolffd@0: Attribute Descriptions wolffd@0: wolffd@0: Damping wolffd@0: Factor damping force motions. On each iteration, a nodes movement is wolffd@0: limited to this factor of its potential motion. By being less than 1.0, wolffd@0: the system tends to ``cool'', thereby preventing cycling. wolffd@0: Epsilon wolffd@0: Terminating condition. If the length squared of all energy gradients wolffd@0: are < Epsilon, the algorithm stops. wolffd@0: URL wolffd@0: Incorporated into device-dependent output. At present, used for ps2, wolffd@0: i*map and svg. For ps2, URLs can be attached to nodes and the root wolffd@0: graph. When distilled to PDF, such nodes are active links and the graph wolffd@0: URL can be used as a base URL. For i*map, URLs can be attached to wolffd@0: nodes, edges and the root graph. If the node or edge URL contains "\N", wolffd@0: this is replaced by the object's name. For svg, URLs can be attached to wolffd@0: nodes, edges and clusters, with "\N" replacement done for all three. wolffd@0: arrowhead wolffd@0: Style of arrowhead on head of edge. wolffd@0: arrowsize wolffd@0: Multiplicative scale factor for arrowheads. wolffd@0: arrowtail wolffd@0: Style of arrowhead on tail of edge. wolffd@0: bb wolffd@0: Bounding box of drawing in integer points. wolffd@0: bgcolor wolffd@0: Color used as background for canvas, plus initial fill color. wolffd@0: bottomlabel wolffd@0: Additional label near bottom of nodes of shape M*. wolffd@0: center wolffd@0: If true, the drawing is centered in the output canvas. wolffd@0: clusterrank wolffd@0: Mode used for handling clusters. If clusterrank is "local", a subgraph wolffd@0: whose name begins with "cluster" is given special treatment. The wolffd@0: subgraph is laid out separately, and then integrated as a unit into its wolffd@0: parent graph, with a bounding rectangle drawn about it. If the cluster wolffd@0: has a label parameter, this label is displayed within the rectangle. wolffd@0: Note also that there can be clusters within clusters. At present, the wolffd@0: modes "global" and "none" appear to be identical, both turning off the wolffd@0: special cluster processing. wolffd@0: color wolffd@0: Basic drawing color for graphics. wolffd@0: comment wolffd@0: Comments are inserted into output. Device-dependent wolffd@0: compound wolffd@0: If true, allow edges between clusters. (See lhead and ltail below.) wolffd@0: concentrate wolffd@0: If true, use edge concentrators. wolffd@0: constraint wolffd@0: If false, the edge is not used in ranking the nodes. For example, in wolffd@0: the graph wolffd@0: wolffd@0: digraph G { wolffd@0: a -> c; wolffd@0: a -> b; wolffd@0: b -> c [constraint=false]; wolffd@0: } wolffd@0: wolffd@0: wolffd@0: the edge b -> c does not add a constraint during rank assignment, so wolffd@0: the only constraints are that a be above b and c. wolffd@0: wolffd@0: decorate wolffd@0: If true, attach edge label to edge by a 2-segment polyline, underlining wolffd@0: the label, then going to the closest point of spline. wolffd@0: dir wolffd@0: Set edge type for drawing arrowheads. wolffd@0: distortion wolffd@0: Distortion factor for shape=polygon. Positive values cause top part to wolffd@0: be larger than bottom; negative values do the opposite. wolffd@0: fillcolor wolffd@0: If fillcolor is not defined, color is used. If this is not defined, the wolffd@0: default is used, except for shape=point or when the output format is wolffd@0: MIF, which use black by default. wolffd@0: fixedsize wolffd@0: If true, the node size is kept fixed and not expanded to contain the wolffd@0: text label. wolffd@0: fontcolor wolffd@0: Color used for text. wolffd@0: fontname wolffd@0: Font used for text. wolffd@0: fontpath wolffd@0: Directory list used by libgd to search for bitmap fonts. If fontpath is wolffd@0: not set, the environment variable DOTFONTPATH is checked. If that is wolffd@0: not set, GDFONTPATH is checked. If not set, libgd uses its compiled-in wolffd@0: font path. wolffd@0: fontsize wolffd@0: Font size, in points, used for text. wolffd@0: group wolffd@0: If the end points of an edge belong to the same group, i.e., have the wolffd@0: same group attribute, parameters are set to avoid crossings and keep wolffd@0: the edges straight. wolffd@0: headURL wolffd@0: For the output format imap, or cmap, if headURL is defined, it is wolffd@0: output as part of the head label of the edge. If headURL contains wolffd@0: "\N", this will be replaced by the head label text. wolffd@0: headlabel wolffd@0: Text label to be placed near head of edge. wolffd@0: headport wolffd@0: Indicates where on the head node to attach the head of the edge. In the wolffd@0: default case, the edge is aimed towards the center of the node, and wolffd@0: then clipped at the node boundary. wolffd@0: height wolffd@0: Height of node, in inches. wolffd@0: K constant used in the Fruchterman-Reingold force directed model. wolffd@0: label wolffd@0: Text label attached to objects. The escape sequences "\n", "\l" and wolffd@0: "\r" divide the label into lines, centered, left-justified and wolffd@0: right-justified, respectively. The escape sequence "\N" represents a wolffd@0: node's name. If a node's shape is record, then the label can have a wolffd@0: special format which describes the record layout. wolffd@0: labelangle wolffd@0: Angle, in degrees, that the headlabel(taillabel) is rotated from the wolffd@0: angle the edge makes incident with the head(tail) node, respectively. wolffd@0: labeldistance wolffd@0: Multiplicative scaling factor adjusting the distance that the wolffd@0: headlabel(taillabel) is the from head(tail) node. wolffd@0: labelfloat wolffd@0: If true, allows edge labels to be less constrained in position. In wolffd@0: particular, it may appear on top of other edges. wolffd@0: labelfontcolor wolffd@0: Color used for headlabel and taillabel. wolffd@0: labelfontname wolffd@0: Font used for headlabel and taillabel. wolffd@0: labelfontsize wolffd@0: Font size, in points, used for headlabel and taillabel. wolffd@0: labeljust wolffd@0: Justification for cluster labels. If "r", the label is right-justified wolffd@0: within bounding rectangle; otherwise, left-justified. wolffd@0: labelloc wolffd@0: Top/bottom placement of graph and cluster labels. If the attribute is wolffd@0: "t", place label at the top; if the attribute is "b", place label at wolffd@0: the bottom. By default, root graph labels go on the bottom and cluster wolffd@0: labels go on the top. wolffd@0: layer wolffd@0: Specifies layers in which the node or edge is present. wolffd@0: layers wolffd@0: Specifies a linearly ordered list of layer names attached to the graph wolffd@0: The graph is then output in separate layers. Only those components wolffd@0: belonging to the current output layer appear. For more information, see wolffd@0: the page How to use drawing layers (overlays). wolffd@0: len wolffd@0: Preferred edge length, in inches. wolffd@0: levels wolffd@0: Number of levels allowed in the multilevel scheme. Default is MAXINT. wolffd@0: lhead wolffd@0: Logical head of an edge. When compound is true, if lhead is defined and wolffd@0: is the name of a cluster containing the real head, the edge is clipped wolffd@0: to the boundary of the cluster. wolffd@0: lp wolffd@0: Label position, in points. wolffd@0: ltail wolffd@0: Logical tail of an edge. When compound is true, if ltail is defined and wolffd@0: is the name of a cluster containing the real tail, the edge is clipped wolffd@0: to the boundary of the cluster. wolffd@0: margin wolffd@0: Set x and y margins of canvas, in inches. In first case, both margins wolffd@0: are set equal to the given value. wolffd@0: maxiter wolffd@0: Sets the number of iterations used. wolffd@0: mclimit wolffd@0: Multiplicative scale factor used to alter the MinQuit (default = 8) and wolffd@0: MaxIter (default = 24) parameters used during crossing minimization. wolffd@0: These correspond to the number of tries without improvement before wolffd@0: quitting and the maximum number of iterations in each pass. wolffd@0: minlen wolffd@0: Minimum edge length (rank difference between head and tail). wolffd@0: model wolffd@0: If "circuit", use circuit resistance model to compute dissimilarity wolffd@0: values; otherwise, use shortest path model. wolffd@0: nodesep wolffd@0: Minimum space between two adjacent nodes in the same rank, in inches. wolffd@0: normalize wolffd@0: If set, normalize coordinates of final layout so that the first point wolffd@0: is at the origin, and then rotate the layout so that the first edge is wolffd@0: horizontal. wolffd@0: nslimit , wolffd@0: nslimit1 wolffd@0: Used to set number of iterations in network simplex applications. wolffd@0: nslimit is used in computing node x coordinates, nslimit1 for ranking wolffd@0: nodes. If defined, # iterations = nslimit(1) * # nodes; otherwise, # wolffd@0: iterations = MAXINT. wolffd@0: ordering wolffd@0: If "out" for a graph G, and n is a node in G, then edges n->* appear wolffd@0: left-to-right in the same order in which they are defined. wolffd@0: orientation wolffd@0: Angle, in degrees, used to rotate node shapes. wolffd@0: orientation wolffd@0: If "[lL]*", set graph orientation to landscape Used only if rotate is wolffd@0: not defined. wolffd@0: overlap wolffd@0: If "scale", remove node overlaps by scaling; if converts to false, wolffd@0: remove node overlaps by the Voronoi technique; otherwise, leave wolffd@0: overlaps. wolffd@0: page wolffd@0: Width and height of output pages, in inches. If this is set and is wolffd@0: smaller than the size of the layout, a rectangular array of pages of wolffd@0: the specified page size is overlaid on the layout, with origins aligned wolffd@0: in the lower-left corner, thereby partitioning the layout into pages. wolffd@0: The pages are then produced one at a time, in pagedir order. wolffd@0: pagedir wolffd@0: If the page attribute is set and applicable, this attribute specifies wolffd@0: the order in which the pages are emitted. This is limited to one of the wolffd@0: 8 row or column major orders. wolffd@0: peripheries wolffd@0: Set number of peripheries used in polygonal shapes. wolffd@0: pin wolffd@0: If true and the node has a pos attribute on input, neato prevents the wolffd@0: node from moving from the input position. This property can also be wolffd@0: specified in the pos attribute itself (cf. the point type). wolffd@0: pos wolffd@0: Position of node, or spline control points, in points. In neato, pos wolffd@0: can be used to set initial position of a node. Concerning this, see the wolffd@0: -s command line flag. wolffd@0: quantum wolffd@0: If quantum > 0.0, node label dimensions will be rounded to integral wolffd@0: multiples of the quantum. wolffd@0: quadtree wolffd@0: Quadtree scheme to use. Values are "normal" (default), "fast" or "none". wolffd@0: "fast" gives about 2-4 overall speedup compared with "normal", though wolffd@0: layout quality can suffer a little. wolffd@0: rank wolffd@0: Rank constraints on the nodes in a subgraph. If rank="same", all nodes wolffd@0: are placed on the same rank. If rank="min", all nodes are placed on the wolffd@0: minimum rank. If rank="source", all nodes are placed on the minimum wolffd@0: rank, and the only nodes on the minimum rank belong to some subgraph wolffd@0: whose rank attribute is "source" or "min". Analogous criteria hold for wolffd@0: rank="max" and rank="sink". (Note: the minimum rank is topmost or wolffd@0: leftmost, and the maximum rank is bottommost or rightmost.) wolffd@0: rankdir wolffd@0: Sets direction of graph layout. If rankdir="LR", the graph is laid out wolffd@0: from left to right, i.e., directed edges tend to go from left to right. wolffd@0: By default, graphs are laid out from top to bottom. wolffd@0: ranksep wolffd@0: In dot, this the gives desired rank separation, in inches. This is the wolffd@0: minimum vertical distance between the bottom of the nodes in one rank wolffd@0: and the tops of nodes in the next. If the value contains "equally", the wolffd@0: centers of all ranks are spaced equally apart. Note that both settings wolffd@0: are possible, e.g., ranksep = "1.2 equally". In twopi, specifies radial wolffd@0: separation of ranks. wolffd@0: ratio wolffd@0: Sets the aspect ratio (drawing height/drawing width) for the drawing. wolffd@0: Note that this is adjusted before the size attribute constraints are wolffd@0: enforced. wolffd@0: wolffd@0: If ratio is numeric, it is taken as the desired aspect ratio. Then, if wolffd@0: the actual aspect ratio is less than the desired ratio, the drawing wolffd@0: height is scaled up to achieve the desired ratio; if the actual ratio wolffd@0: is greater than that desired ratio, the drawing width is scaled up. wolffd@0: wolffd@0: If ratio = "fill" and the size attribute is set, the drawing is scaled wolffd@0: to achieve the aspect ratio implied by size. As size is set, when the wolffd@0: drawing is later scaled to fit that rectangle, the resulting picture wolffd@0: will fill the rectangle. wolffd@0: wolffd@0: If ratio = "compress" and the size attribute is set, dot attempts to wolffd@0: compress the initial layout to fit in the given size. This achieves a wolffd@0: tighter packing of nodes but reduces the balance and symmetry. wolffd@0: wolffd@0: If ratio = "auto", the page attribute is set and the graph cannot be wolffd@0: drawn on a single page, then size is set to an ``ideal'' value. In wolffd@0: particular, the size in a given dimension will be the smallest integral wolffd@0: multiple of the page size in that dimension which is at least half the wolffd@0: current size. The two dimensions are then scaled independently to the wolffd@0: new size. wolffd@0: rects wolffd@0: Rectangles for fields of records, in points. wolffd@0: regular wolffd@0: If true, force polygon to be regular. wolffd@0: repulsiveforce wolffd@0: The power of repulsive force used in an extended Fruchterman-Reingold wolffd@0: force directed model. Default is 1. Values larger than 1 tend to reduce wolffd@0: the warping effect at the expensive of less clustering. wolffd@0: remincross wolffd@0: If true and there are multiple clusters, run cross minimization a wolffd@0: second time. wolffd@0: rotate wolffd@0: If 90, set drawing orientation to landscape. wolffd@0: samehead wolffd@0: Edges with the same head and the same samehead value are aimed at the wolffd@0: same point on the head. wolffd@0: sametail wolffd@0: Edges with the same tail and the same sametail value are aimed at the wolffd@0: same point on the tail. wolffd@0: samplepoints wolffd@0: If the input graph defines the vertices attribute, and output is plain* wolffd@0: or attributed dot, this give the number of points used to represent wolffd@0: circles and ellipses. It plays the same role in neato, when adjusting wolffd@0: the layout to avoid overlapping nodes. wolffd@0: searchsize wolffd@0: During network simplex, maximum number of edges with negative cut wolffd@0: values to search when looking for one with minimum cut value. wolffd@0: sep wolffd@0: Fraction to increase polygons (multiply coordinates by 1 + sep) for wolffd@0: purposes of determining overlap. Guarantees a minimal non-zero distance wolffd@0: between nodes. wolffd@0: shape wolffd@0: Set shape of node. wolffd@0: shapefile wolffd@0: For output format is ps* or svg*, if non-empty, taken as a filename wolffd@0: containing a device-dependent description of a node's shape. wolffd@0: showboxes wolffd@0: Print guide boxes in PostScript at the beginning of routesplines if 1, wolffd@0: or at the end if 2. (Debugging) wolffd@0: sides wolffd@0: Number of sides if shape=polygon. wolffd@0: size wolffd@0: Maximum width and height of drawing, inches. If defined and the drawing wolffd@0: is too large, the drawing is uniformly scaled down so that it fits wolffd@0: within the given size. Note that there is some interaction between the wolffd@0: size and ratio attributes. wolffd@0: skew wolffd@0: Skew factor for shape=polygon. Positive values skew top of polygon to wolffd@0: right; negative to left. wolffd@0: smoothing wolffd@0: A post processing step to smooth out uneven distribution of nodes. Possible wolffd@0: values are "none" (default), "avg_dist", "graph_dist", "power_dist", "rng", wolffd@0: "spring" and "triangle". wolffd@0: splines wolffd@0: If true, draw edges as splines. This requires non-overlapping nodes wolffd@0: (cf. overlap). wolffd@0: start wolffd@0: Parameter used to determine the initial layout of nodes. By default, wolffd@0: nodes are randomly placed in a square whose sides have length (# wolffd@0: nodes). The same seed is always used for the random number generator, wolffd@0: so the initial placement is repeatable. If start converts to an wolffd@0: integer, this is used as a seed value for the random number generator. wolffd@0: If start is "regular", the nodes are placed regularly about a circle. wolffd@0: Finally, if start is defined but is not one of the above cases, the wolffd@0: current time is used to pick a seed. wolffd@0: style wolffd@0: Set style for node or edge. For cluster subgraph, if "filled", the wolffd@0: cluster box's background is filled. wolffd@0: stylesheet wolffd@0: The URL of a CSS stylesheet to be referenced from the output file. wolffd@0: Relevant only for SVG output. wolffd@0: tailURL wolffd@0: When the output format is imap, or cmap, if tailURL is defined, it is wolffd@0: output as part of the tail label of the edge. If tailURL wolffd@0: contains "\N", this will be replaced by the tail label text. wolffd@0: taillabel wolffd@0: Text label to be placed near tail of edge. wolffd@0: tailport wolffd@0: Indicates where on the tail node to attach the tail of the edge. wolffd@0: toplabel wolffd@0: Additional label near top of nodes of shape M*. wolffd@0: vertices wolffd@0: If the input graph defines this attribute, the node is polynomial, and wolffd@0: output is plain* or attributed dot, this attribute provides the wolffd@0: coordinates of the vertices of the node's polynomial, in points. If the wolffd@0: node is an ellipse or circle, the samplepoints attribute affects the wolffd@0: output. wolffd@0: voro_margin wolffd@0: Factor to scale up drawing to allow margin for expansion in Voronoi wolffd@0: technique. dim' = (1+2*margin)*dim. wolffd@0: w wolffd@0: Redundant definition of weight in neato, cf. bug 9. wolffd@0: weight wolffd@0: Weight of edge. Usually, the heavier the weight, the shorter (and, in wolffd@0: dot, straighter and more vertical) an edge is. wolffd@0: width wolffd@0: Width of node, in inches. wolffd@0: z wolffd@0: Provides z coordinate for the node when output format is VRML. wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: wolffd@0: Attribute Type Descriptions wolffd@0: wolffd@0: arrowType wolffd@0: "normal" "inv" wolffd@0: wolffd@0: "dot" "invdot" wolffd@0: wolffd@0: "odot" "invodot" wolffd@0: wolffd@0: "none" wolffd@0: clusterMode wolffd@0: "local","global","none" wolffd@0: color wolffd@0: "#%2x%2x%2x" RGB wolffd@0: "#%2x%2x%2x%2x"RGBA wolffd@0: "%lf,%lf,%lf" HSV 0.0 <= values <= 1.0 wolffd@0: string color name wolffd@0: dirType wolffd@0: For an edge T -> H; wolffd@0: wolffd@0: "forward" "back" wolffd@0: wolffd@0: "both" "none" wolffd@0: wolffd@0: For undirected edges T -- H;, one of the nodes, usually the righthand wolffd@0: one, is treated as the head for the purpose of interpreting "forward" wolffd@0: and "back". wolffd@0: layerList wolffd@0: list of strings separated by colons, tabs or spaces, defining layer wolffd@0: names and implicitly numbered 1,2,... wolffd@0: layerRange wolffd@0: layerId or layerId[:\t ]layerId, wolffd@0: where layerId = "all", decimal integer or layer name. (An integer i wolffd@0: corresponds to layer i.) wolffd@0: pagedir wolffd@0: "BL", "BR", "TL", "TR", "RB", "RT", "LB", "LT". These specify the 8 row wolffd@0: or column major orders for traversing a rectangular array, the first wolffd@0: character corresponding to the major order and the second to the minor wolffd@0: order. Thus, for "BL", the major order is from bottom to top, and the wolffd@0: minor order is from left to right. This means the bottom row is wolffd@0: traversed first, from left to right, then the next row up, from left to wolffd@0: right, and so on, until the topmost row is traversed. wolffd@0: point wolffd@0: "%d,%d"('!') representing the point (x,y). The optional '!' indicates wolffd@0: the node position should not change (input-only). wolffd@0: pointf wolffd@0: "%lf,%lf" representing the point (x,y). wolffd@0: pointfList wolffd@0: list of pointf, separated by spaces. wolffd@0: portPos wolffd@0: "n","ne","e","se","s","sw","w","nw" These correspond to the obvious wolffd@0: compass points on the node. wolffd@0: rankType wolffd@0: "same", "min", "source", "max", "sink" wolffd@0: rankdir wolffd@0: "LR". Any other value corresponds to a top-down layout. wolffd@0: rect wolffd@0: "%d,%d,%d,%d" The rect llx,lly,urx,ury gives the coordinates, in wolffd@0: points, of the lower-left corner (llx,lly) and the upper-right corner wolffd@0: (urx,ury). wolffd@0: shape wolffd@0: A string specifying the shape of a node. There are three main types of wolffd@0: shapes : polygon-based, record-based and PostScript-based. wolffd@0: splineType wolffd@0: spline ( ';' spline )* wolffd@0: where spline= (endp)? (startp)? point (triple)]* wolffd@0: and triple = point point point wolffd@0: and endp = "e,%d,%d" wolffd@0: and startp = "s,%d,%d" wolffd@0: If a spline has points p1 p2 p3 ... pn, (n = 1 (mod 3)), the points wolffd@0: correspond to the control points of a B-spline from p1 to pn. If startp wolffd@0: is given, it touches one node of the edge, and the arrowhead goes from wolffd@0: p1 to startp. If startp is not given, p1 touches a node. Similarly for wolffd@0: pn and endp. wolffd@0: style wolffd@0: styleItem ( ',' styleItem )* wolffd@0: where styleItem= name or name'('args')' wolffd@0: and args = name ( ',' name )* wolffd@0: and name = [^)(, ][^)(,]* wolffd@0: At present, the recognized style names comprise "dashed", "dotted", wolffd@0: "solid", "invis" and "bold" for nodes and edges, and "filled", wolffd@0: "diagonals" and "rounded" for nodes only. Additional styles are wolffd@0: available in device-dependent form. Style lists are passed to device wolffd@0: drivers, which can use this to generate appropriate output. wolffd@0: wolffd@0: Note that, at present, "rounded" cancels "filled", except for circles wolffd@0: and ellipses. This holds for the Mrecord shape, which is rounded by wolffd@0: definition. wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: wolffd@0: Output Formats wolffd@0: wolffd@0: ------------------------------------------------------------------------ wolffd@0: The output format is specified with the -Tlang flag on the command line, wolffd@0: where lang is one of the following: wolffd@0: Command-line wolffd@0: parameter Format wolffd@0: canon wolffd@0: cmap Client-side imagemap wolffd@0: dot DOT wolffd@0: fig FIG wolffd@0: gd wolffd@0: gd2 GD/GD2 formats wolffd@0: gif GIF wolffd@0: hpgl HP-GL/2 wolffd@0: imap Server-side imagemap wolffd@0: ismap Server-side imagemap (deprecated) wolffd@0: jpg wolffd@0: jpeg JPEG wolffd@0: mif FrameMaker MIF format wolffd@0: mp MetaPost wolffd@0: pcl PCL wolffd@0: pic PIC wolffd@0: plain wolffd@0: plain-ext Simple text format wolffd@0: png Portable Network Graphics format wolffd@0: ps PostScript wolffd@0: ps2 PostScript for PDF wolffd@0: svg wolffd@0: svgz Scalable Vector Graphics wolffd@0: vrml VRML wolffd@0: vtx Visual Thought format wolffd@0: wbmp Wireless BitMap format wolffd@0: ------------------------------------------------------------------------ wolffd@0: wolffd@0: Format Descriptions wolffd@0: wolffd@0: canon , wolffd@0: dot wolffd@0: These two formats produce output in variations of the dot language. wolffd@0: Using canon produces a prettyprinted version of the input, with no wolffd@0: layout performed. wolffd@0: wolffd@0: dot corresponds to attributed dot, and is the default output format. It wolffd@0: reproduces the input, along with layout information for the graph. In wolffd@0: particular, a bb attribute is attached to the graph, specifying the wolffd@0: bounding box of the drawing. If the graph has a label, its position is wolffd@0: specified by the lp attribute. wolffd@0: wolffd@0: Each node gets pos, width and height attributes. If the node is a wolffd@0: record, the record rectangles are given in the rects attribute. If the wolffd@0: node is a polygon and the vertices attribute is defined, this attribute wolffd@0: contains the vertices of the node. wolffd@0: wolffd@0: Every edge is assigned a pos attribute, and if the edge has a label, wolffd@0: the label position is given in lp. wolffd@0: fig wolffd@0: Outputs graphs in the FIG graphics language. wolffd@0: gd , wolffd@0: gd2 wolffd@0: Output images in the GD and GD2 format. These are the internal formats wolffd@0: used by the gd library. The latter is compressed. wolffd@0: gif wolffd@0: Outputs GIF bitmap images. wolffd@0: hpgl wolffd@0: Produces output in the HP-GL/2 vector graphic printer language. wolffd@0: imap wolffd@0: cmap wolffd@0: Produces map files for server-side and client-side image maps, wolffd@0: respectively. These can be used in a web page with a graphical wolffd@0: form of the output, e.g. in JPEG or GIF format, to attach links wolffd@0: to nodes and edges. For example, given the dot file wolffd@0: wolffd@0: /* x.dot */ wolffd@0: digraph G { wolffd@0: URL="http://www.research.att.com/"; wolffd@0: command [URL="command.html"]; wolffd@0: command -> output [URL="colors.html"]; wolffd@0: } wolffd@0: wolffd@0: wolffd@0: this can be processed twice: wolffd@0: wolffd@0: dot -Timap > x.map wolffd@0: dot -Tgif > x.gif wolffd@0: wolffd@0: wolffd@0: and then be referred to in a web page, such as wolffd@0: wolffd@0: wolffd@0: wolffd@0: wolffd@0: wolffd@0: wolffd@0: URLs can be attached to the root graph, nodes and edges. If the URL of wolffd@0: a node contains the escape sequence "\N", it will be replaced by the wolffd@0: node's name. If an edge has a URL, various points along the edge (but wolffd@0: not the head or tail) will link to it. In addition, if the edge has a wolffd@0: label, that will link to the URL. wolffd@0: wolffd@0: As for the head of the edge, this is linked to the headURL, if set. wolffd@0: Otherwise, it is linked to the edge's URL if that is defined. If the wolffd@0: headURL contains the escape sequence "\N", it will be replaced by the wolffd@0: headlabel, if defined. The analogous description holds for the tail, wolffd@0: tailURL and taillabel. wolffd@0: ismap wolffd@0: Produces HTML image map files. This is a predecessor (circa 1994) of wolffd@0: the IMAP format. Most servers now user the latter. URLs can be attached wolffd@0: to the root graph, nodes and edges. Since edge links are attached to wolffd@0: edge labels, an edge must have a label for its URL to be used. For both wolffd@0: nodes and edges, if the URL has the escape sequence "\N" embedded in wolffd@0: its string, this will be replaced with the node or edge name. wolffd@0: jpg , wolffd@0: jpeg wolffd@0: Output JPEG compressed image files. This format relies on the wolffd@0: installation having the JPEG library. wolffd@0: mif wolffd@0: Generates Frame Maker MIF files. wolffd@0: mp wolffd@0: Produces MetaPost output. wolffd@0: pcl wolffd@0: Produces output in the PCL printer language. HP-GL is a subset of PCL, wolffd@0: so that PCL output is the same as HP-GL, wrapped with some initial and wolffd@0: final commands to set the printer to and from HP-GL mode. wolffd@0: pic wolffd@0: Outputs in PIC, the picture description language in the troff-family wolffd@0: plain , wolffd@0: plain-ext wolffd@0: The plain and plain-ext formats produce output using a simple, wolffd@0: line-based language. The latter format differs in that, on edges, it wolffd@0: provides port names on head and tail nodes when applicable. wolffd@0: wolffd@0: There are four types of statements. wolffd@0: wolffd@0: graph scale width height wolffd@0: node name x y width height label style shape color fillcolor wolffd@0: edge tail head n x1 y1 .. xn yn [label xl yl] style color wolffd@0: stop wolffd@0: wolffd@0: wolffd@0: graph wolffd@0: The width and height values give the width and height of the wolffd@0: drawing. The lower left corner of the drawing is at the origin. wolffd@0: The scale value indicates how the drawing should be scaled if a wolffd@0: size attribute was given and the drawing needs to be scaled to wolffd@0: conform to that size. If no scaling is necessary, it will be set wolffd@0: to 1.0. Note that all graph, node and edge coordinates and lengths wolffd@0: are given unscaled. wolffd@0: node wolffd@0: The name value is the name of the node, and x and y give the wolffd@0: node's position. The width and height are the width and height of wolffd@0: the node. The label, style, shape, color and fillcolor give the wolffd@0: node's label, style, shape, color and fillcolor, respectively, wolffd@0: using attribute default values where necessary. If the node does wolffd@0: not have a style attribute, "solid" is used. wolffd@0: edge wolffd@0: The tail and head values give the names of the head and tail wolffd@0: nodes. n is the number of control points defining the B-spline wolffd@0: forming the edge. This is followed by 2*n numbers giving the x and wolffd@0: y coordinates of the control points in order from tail to head. If wolffd@0: the edge has a label, this comes next followed by the x and y wolffd@0: coordinates of the label's position. The edge description is wolffd@0: completed by the edge's style and color. As with nodes, if a style wolffd@0: is not defined, "solid" is used. wolffd@0: The output consists of one graph line, a sequence of node lines, one wolffd@0: per node, a sequence of edge lines, one per edge, and a final stop wolffd@0: line. All units are in inches, represented by a floating point number. wolffd@0: png wolffd@0: Produces output in the PNG (Portable Network Graphics) format. PNG wolffd@0: relies on having libz and the PNG library. wolffd@0: ps wolffd@0: Produces PostScript output. wolffd@0: ps2 wolffd@0: Produces PostScript output with PDF notations. It is assumed the output wolffd@0: will be directly converted into PDF format. The notations include PDF wolffd@0: bounding box information, so that the resulting PDF file can be wolffd@0: correctly used with pdf tools, such as pdflatex. In addition, if a node wolffd@0: has a URL attribute, this gets translated into PDF code such that the wolffd@0: node, when viewed in a PDF-viewer, e.g., acroread, is a link to the wolffd@0: given URL. If a URL is attached to the graph, this serves as a base, wolffd@0: such that relative URLs on nodes are derived from it. wolffd@0: svg , wolffd@0: svgz wolffd@0: Produce SVG output, the latter in compressed format. SVG relies on wolffd@0: having libz. wolffd@0: vrml wolffd@0: Outputs graphs in the VRML format. VRML relies on having the PNG wolffd@0: library. wolffd@0: vtx wolffd@0: Generates graph diagrams in the format for Confluents's Visual Thought. wolffd@0: wbmp wolffd@0: Produces output in the Wireless BitMap (WBMP) format, optimized for wolffd@0: mobile computing. wolffd@0: wolffd@0: ------------------------------------------------------------------------