The D3 layout is the focus of this chapter-a concept we have not encountered before. As expected, D3 layouts are algorithms that calculate and generate placement information for a group of elements. However, there are a few critical properties worth mentioning before we dive deeper into the specifics:
Layouts are data: Layouts are purely data centric and data driven; they do not generate any graphical or display-related output directly. This allows them to be used and reused with SVG or canvas or even when there is no graphical output.
Abstract and reusable: Layouts are abstract, allowing a high degree of flexibility and reusability. You can combine and reuse layouts in various different interesting ways.
Layouts are different: Each layout is different. Every layout provided by D3 focuses on a very special graphical requirement and data structure.
Stateless: Layouts are mostly stateless by design to simplify their usage. What statelessness means here is that generally layouts...