This is almost completely untested, it worked for our data and I have tried to make it generalise-able to other data sets.
First we generate some simulated data, then do the plot.
If you wrangle your own data into a similar format, the remaining code should work.
This is R code.