From: erg Date: Fri, 17 Oct 2008 20:29:08 +0000 (+0000) Subject: Update on-line docs: X-Git-Tag: LAST_LIBGRAPH~32^2~3085 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9c3efbc4bbc7b0129f426e92c26486efd5645594;p=graphviz Update on-line docs: - Push John's changes on bytes vs. characters in xdot to doc/info - Update and expand info on aspect attribute --- diff --git a/doc/infosrc/attrs b/doc/infosrc/attrs index 68af57d47..8616a56ee 100644 --- a/doc/infosrc/attrs +++ b/doc/infosrc/attrs @@ -88,8 +88,24 @@ Multiplicative scale factor for arrowheads. Style of arrowhead on the tail node of an edge. See also the dir attribute, and a limitation. -:aspect:G:aspectType:1.0,1; dot -Target aspect ratio of the renderered graph, and optionally the maximum number of iterations allowed to achieve it. +:aspect:G:aspectType; dot +Target aspect ratio (width of the layout divided by the height) +of the graph drawing. If unset, dot minimizes the total edge length. +For certain graphs, like those with large fan-in or fan-out, this can +lead to very wide layouts. Setting aspect will cause dot to try +to adjust the layout to get an aspect ratio close to that specified +by aspect. +

+By default, dot will do 5 passes attempting to achieve the desired +aspect ratio. For certain graphs, more passes will be needed to get +close enough. The aspect attribute can also be used to +specify the maximum number of passes to try. +

+At present, there is no mechanism for widening a very tall layout. +Also, the algorithm doesn't handle clusters, nor disconnected graphs. +For the latter case, one can split the pipeline
+ccomps -x | dot | gvpack | neato -n2 +to get a similar effect. :bb:G:rect; write Bounding box of drawing in integer points. :bgcolor:GC:color:; @@ -629,6 +645,22 @@ If the value converts to "false", node overlaps are removed by a Voronoi-based technique. If the value is "scalexy", x and y are separately scaled to remove overlaps. +If sfdp is available, one can set overlap=prism to use a proximity graph- +based algorithm for overlap removal. This last is the preferred technique, +though scale and false can work well with small graphs. +

+If the value is "compress", the layout will be scaled down as much as +possible without introducing any overlaps, obviously assuming there are +none to begin with. +

+N.B.The remaining allowed values of overlap +correspond to algorithms which, at present, can produce bad aspect ratios. +In addition, we deprecate the use of the "ortho*" and "portho*". +

+If the value is "vpsc", overlap removal is done as a +quadratic optimization to minimize node displacement while removing +node overlaps. +

If the value is "orthoxy" or "orthoyx", overlaps are moved by optimizing two constraint problems, one for the x axis and one for the y. The suffix indicates which axis is processed first. @@ -640,20 +672,13 @@ The values "portho", "porthoxy", "porthoxy", and "portho_yx" are similar to the previous four, except only pseudo-orthogonal ordering is enforced.

-If the value is "compress", the layout will be scaled down as much as -possible without introducing any overlaps, obviously assuming there are -none to begin with. -

-If the value is "vpsc", overlap removal is similarly to "ortho", except -quadratic optimization is used to minimize node displacement. -

If the layout is done by neato with mode="ipsep", then one can use overlap=ipsep. In this case, the overlap removal constraints are incorporated into the layout algorithm itself. N.B. At present, this only supports one level of clustering.

-Except for fdp, the layouts assume overlap="true" as the default. +Except for fdp and sfdp, the layouts assume overlap="true" as the default. Fdp first uses a number of passes using built-in, force-directed technique to remove overlaps. Thus, fdp accepts overlap with an integer prefix followed by a colon, specifying the number of tries. If there is @@ -663,7 +688,12 @@ uses overlap="9:portho". Note that overlap="true", overlap="0:true" and overlap="0:" all turn off all overlap removal.

-Except for the Voronoi method, all of these transforms preserve the +By default, sfdp uses overlap="prism". This is preceded by a +small scaling up, controlled by the +overlap_scaling attribute, +which can remove a significant portion of the overlap. +

+Except for the Voronoi and prism methods, all of these transforms preserve the orthogonal ordering of the original layout. That is, if the x coordinates of two nodes are originally the same, they will remain the same, and if the x coordinate of one node is originally less than the x coordinate of @@ -671,9 +701,6 @@ another, this relation will still hold in the transformed layout. The similar properties hold for the y coordinates. This is not quite true for the "porth*" cases. For these, orthogonal ordering is only preserved among nodes related by an edge. -

-NOTE: The methods "orthoxy" and "orthoyx" are still evolving. The -semantics of these may change, or these methods may disappear altogether. :overlap_scaling:G:double:-4:-1.0e10; sfdp When overlap=sfdp, the layout is scaled by this factor, thereby removing a fair amount of node overlap, and making node overlap removal diff --git a/doc/infosrc/types b/doc/infosrc/types index 9816f0035..fbd432b8a 100644 --- a/doc/infosrc/types +++ b/doc/infosrc/types @@ -6,8 +6,9 @@ # The type is given the anchor k:, so # the description can be linked with "> :aspectType -

An aspect ratio, double, followed optionally by a ',' and a max iteration count. -If the aspect ratio is given, but no max iteration count, then the max iteration count defaults to 5. +

An aspect ratio, double, followed optionally by a ',' and a maximum pass +count. If the aspect ratio is given, but no maximum pass count, the +latter defaults to 5. :arrowType
"normal"