On a bet, I suppose it could be done, but no guarantees. (The edge routing is probably the hardest part):
- Explicitly (programmatically) position all nodes (pos | Graphviz), labels (lp | Graphviz), and clusters (bb | Graphviz)
- Explicitly position “center pin” node on-top-of circular node (again pos | Graphviz)
- Use
neato -n
(pos | Graphviz) to have neato just route edges. (usesplines=ortho
andedge [dir=both arrowhead=none arrowtail=none headclip=false tailclip=false]
to go center-to-center) - Either:
- Invoke religious icons in hopes that
splines=ortho
provides “nice” edge routing. (splines=ortho
can be disappointing) - Explicitly route all edges yourself (poorly described here: Fun with edges!). Doable (maybe) but a bit of a pain.
- Invoke religious icons in hopes that
Before doing the above, look at the PIC language (PIC (markup language) - Wikipedia). I like the pikchr & dpic variants.