ivy.layout module

layout nodes in 2d space

The function of interest is calc_node_positions (aka nodepos)

class ivy.layout.Coordinates(x=0, y=0)[source]

Coordinates class for storing xy coordinates

point()[source]
ivy.layout.calc_node_positions(node, width, height, lpad=0, rpad=0, tpad=0, bpad=0, scaled=True, smooth=True, n2coords=None)[source]

Calculate where nodes should be positioned in 2d space for drawing a tree

Parameters:
  • node (Node) – A (root) node
  • width (float) – The width of the canvas
  • height (float) – The height of the canvas
  • rpad, tpad, bpad (lpad,) – Padding on the edges of the canvas. Optional, defaults to 0.
  • scaled (bool) – Whether or not the tree is scaled. Optional, defaults to True.
  • smooth (bool) – Whether or not to smooth the tree. Optional, defaults to True.
Returns:

Mapping of nodes to Coordinates object

Return type:

dict

Notes

Origin is at upper left

ivy.layout.cartesian(node, xscale=1.0, leafspace=None, scaled=True, n2coords=None, smooth=0, array=<built-in function array>, ones=<function ones>, yunit=None)[source]
RR: What is the difference between this function and calc_node_positions?
Is it being used anywhere? -CZ
ivy.layout.depth_length_preorder_traversal(node, n2coords=None, isroot=False)[source]

Calculate node depth (root = depth 0) and length to root

Parameters:node (Node) – A node object
Returns:
Mapping of nodes to coordinate objects. Coordinate
objects have attributes “depth” and “length_to_root”
Return type:dict
ivy.layout.nodepos(node, width, height, lpad=0, rpad=0, tpad=0, bpad=0, scaled=True, smooth=True, n2coords=None)

Calculate where nodes should be positioned in 2d space for drawing a tree

Parameters:
  • node (Node) – A (root) node
  • width (float) – The width of the canvas
  • height (float) – The height of the canvas
  • rpad, tpad, bpad (lpad,) – Padding on the edges of the canvas. Optional, defaults to 0.
  • scaled (bool) – Whether or not the tree is scaled. Optional, defaults to True.
  • smooth (bool) – Whether or not to smooth the tree. Optional, defaults to True.
Returns:

Mapping of nodes to Coordinates object

Return type:

dict

Notes

Origin is at upper left

ivy.layout.smooth_xpos(node, n2coords)[source]