_get_packed_offsets(wd_list, total, sep, mode='fixed')
For simplicity of the description, the terminology used here assumes a horizontal layout, but the function works equally for a vertical layout.
xdescent is analogous to the usual descent, but along the x-direction; it is currently ignored.
There are three packing mode\s:
'fixed': The elements are packed tight to the left with a spacing of sep in between. If total is None the returned total will be the right edge of the last box. A non-None total will be passed unchecked to the output. In particular this means that right edge of the last box may be further to the right than the returned total.
'expand': Distribute the boxes with equal spacing so that the left edge of the first box is at 0, and the right edge of the last box is at total. The parameter sep is ignored in this mode. A total of None is accepted and considered equal to 1. The total is returned unchanged (except for the conversion None to 1). If the total is smaller than the sum of the widths, the laid out boxes will overlap.
'equal': If total is given, the total space is divided in N equal ranges and each box is left-aligned within its subspace. Otherwise (total is None), sep must be provided and each box is left-aligned in its subspace of width (max(widths) + sep)
. The total width is then calculated to be N * (max(widths) + sep)
.
(width, xdescent) of boxes to be packed.
Intended total length. None if not used.
Spacing between boxes.
The packing mode.
The total width needed to accommodate the laid out boxes.
The left offsets of the boxes.
Pack boxes specified by their (width, xdescent)
pair.
Hover to see nodes names; edges to Self not shown, Caped at 50 nodes.
Using a canvas is more power efficient and can get hundred of nodes ; but does not allow hyperlinks; , arrows or text (beyond on hover)
SVG is more flexible but power hungry; and does not scale well to 50 + nodes.
All aboves nodes referred to, (or are referred from) current nodes; Edges from Self to other have been omitted (or all nodes would be connected to the central node "self" which is not useful). Nodes are colored by the library they belong to, and scaled with the number of references pointing them