>Like all good developers, rather than attempt to build it myself, I had a good look around to see if anyone else had attempted the same thing, and it turns out, someone had. Unfortunately, the example I found isn’t open source, so we had to build it ourselves.<p>I came across an open source (MIT licensed) project to draw these kind of charts a few years ago: <a href="https://github.com/bhagany/nchart" rel="nofollow">https://github.com/bhagany/nchart</a><p>(The algorithms used by nchart and d3-layout-narrative are not the same)
Direct link to library:<p><a href="https://github.com/abcnews/d3-layout-narrative" rel="nofollow">https://github.com/abcnews/d3-layout-narrative</a>.<p>Neat stuff: I will see if it has utility for planning out my own writing.
A narrative of <a href="https://en.m.wikipedia.org/wiki/All_You_Zombies" rel="nofollow">https://en.m.wikipedia.org/wiki/All_You_Zombies</a> would be interesting.
Also, JakeVDP did xkcd-style plots [0] in 2012 (and I think now they're bundled as part of the IPython/Jupyter/Matplotlib/Anaconda package).<p>[0] <a href="https://jakevdp.github.io/blog/2012/10/07/xkcd-style-plots-in-matplotlib/" rel="nofollow">https://jakevdp.github.io/blog/2012/10/07/xkcd-style-plots-i...</a>
This seems like a perfect use case for human-aided layout: if you could drag things to rearrange, but the computer kept it correct, it seems like you could tweak them pretty quickly into a much better state.
Here's a take on the problem from 2010: <a href="http://ogievetsky.com/PlotWeaver/" rel="nofollow">http://ogievetsky.com/PlotWeaver/</a> (Warning: Flash)