Commit d8119f8
authored
spec: add network-hierarchical specification (#3349)
## New Specification: `network-hierarchical`
Related to #3343
---
### specification.md
# network-hierarchical: Hierarchical Network Graph with Tree Layout
## Description
A hierarchical network graph organizes nodes in distinct levels from
root to leaves, with edges showing parent-child relationships between
levels. Unlike force-directed layouts that optimize for aesthetic
spacing, hierarchical layouts explicitly encode tree structure by
positioning nodes at fixed vertical or horizontal levels. This
visualization reveals organizational depth, branching patterns, and the
overall tree structure at a glance.
## Applications
- Visualizing organizational charts showing reporting relationships from
executives to individual contributors
- Displaying file system or directory structures with folders and
subfolders organized by depth
- Mapping software class hierarchies showing inheritance relationships
from base to derived classes
- Illustrating decision trees or classification hierarchies with clear
branching paths
## Data
- `nodes` (list of dicts) - entities with unique IDs, labels, and
optional level or parent attributes
- `edges` (list of tuples) - parent-child connections as (parent_id,
child_id) pairs
- `level` (integer, optional) - explicit level assignment for each node
(0 = root)
- Size: 10-50 nodes for readable static visualization
- Example: A small organizational chart with 30 employees across 4
management levels
## Notes
- Use tree or hierarchical layout algorithms (e.g., NetworkX's
graphviz_layout with 'dot')
- Root nodes should be positioned at the top (or left for horizontal
layouts)
- Edges should be straight or curved lines without arrows unless
direction needs emphasis
- Consider edge bundling for trees with many nodes to reduce visual
clutter
- Node spacing should be proportional to prevent overlap at crowded
levels
---
**Next:** Add `approved` label to the issue to merge this PR.
---
:robot: *[spec-create
workflow](https://github.com/MarkusNeusinger/pyplots/actions/runs/20832697874)*
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>1 parent 7879d79 commit d8119f8
2 files changed
Lines changed: 56 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
0 commit comments