One nit: I've seen people make D3 stuff a bit easier to understand by indenting the various function calls and selectors underneath which ones they apply to. E.g.:

```javascript
d3.select(chartEl)
    .selectAll('.y.axis')
      .call(yAxis)
    .selectAll('.label')
      .text(yLabel())
```

Just a thought for the future!