chartLayout now adheres to the general update pattern

I was just about to ask that!

It's probably also worth adding a few comments in the code, as this feels like a slightly unusual application of data-join. However, I think this is a 'standard' solution, I'm pretty sure I have seen Mr Bostock himself do this.

Why not add a 'dummayData' variable at the top of the function, using this in place of all your `[0]` literals. It would also give you a central point to document what you have done here.