University of Bremen

Manual

Main->Concepts->Fine-Tuning

Fine-Tuning of a Layout

An automatically generated graph is never perfect. To overcome this deficit, uDraw(Graph) offers interactive fine-tuning operations. Fine-tuning is available at any time, before or after improving edge crossings with menu Layout/Improve All. Fine-tuning is even useful to remove obvious edge crossings which cannot be removed by the layout algorithm. Then after fine-tuning, the layout algorithm can be started again to eliminate more edge crossings. The following description is written for fine-tuning in a top-down layout, for other orientations the terms "horizontal" and "vertical" have to be exchanged.

Fine-tuning works by selecting a node with the left mouse button. The button needs to be pressed while the mouse is moved to a new position (dragging). Regular nodes can be moved both in horizontal and vertical direction, but dummy nodes can only be moved horizontally. Fine-tuning in uDraw(Graph) is more than moving a node to another position, because moving a node automatically corrects the position of neighbour nodes in order to preserve a correct hierarchical layout. For example, if a node is moved horizontally and has reached its neighbour node then either both nodes have to exchange their position (mode "Modify Node Order") or the neighbour node has to be moved as well (mode "Preserve Node Order"), depending on the current setting for fine-tuning. Furthermore, if a node is moved to the next or previous level, then the child or parent subgraphs may have to be moved as well to keep a hierarchical layout where all edges point downwards.

For horizontal fine-tuning (i.e. moving a node on a level to the left or to the right), there are three modes that can be set with menu Options/Layout Algorithm... or by using the last three icons of the icon bar at the left side of the base window. The fine-tuning mode defines the behavior when a moved node has touched its left or right neighbour node at the same level. A neighbour node is touched when the minimal node distance is reached.

  • In default mode "Preserve Node Order", the touched node is moved as well to keep the order of nodes on a level.
  • In mode "Modify Node Order", the moved node and the touched node will exchange their position as soon as there is enough space to do so. This mode is useful to rearrange the order of nodes on a level, e.g. to remove edge crossings by hand.
  • In the third mode "Fixed Neighbour Nodes", fine-tuning will stop as soon as a neighbour node is touched. This is useful to protect the position of all neighbour nodes.
Vertical fine-tuning is used to move a node to a different level. This is only possible with regular nodes. Dummy nodes which are used to fill long span edges cannot be moved vertically. A node that is dragged is moved to the next or previous level as soon as the level coordinate (i.e. the center of all nodes at this level) is reached by the mouse pointer. At this time, dynamic layout may automatically start to rearrange the layout. This is needed to keep a hierarchical layout.

Important notes about fine-tuning

  • After starting the layout algorithm, the x-coordinates and order of all nodes are recalculated, but their current level will be kept. This preserves previous vertical fine-tuning, but eliminates horizontal adjustments. If you want to place the nodes back to their default level, you have to deselect checkbox "Keep Nodes at Levels" in the Options/Layout Algorithm... dialog.
  • Modifying the layout dimensions with the Options/Layout Settings... dialog eliminates previous horizontal fine-tuning steps. So the final dimensions should be set before starting with extensive fine-tuning.
  • Unnecessary space to the left and the right of the visualization is removed immediately after you have released the mouse button.

Next: Graph Status.