scale.linear->scaleLineard3.time.format->d3.timeFormatd3.time.scale->d3.scaleTimed3.svg.line->d3.lined3.svg.brush().x()->d3.brushX()d3.svg.brush().y()->d3.brushY()d3.svg.brush().x().y()->d3.brush()???
https://github.com/d3/d3/blob/master/CHANGES.md#brushes-d3-brush
extent([[xScale.range()[0], 0], [xScale.range()[1], brushHeight]])
brushstart -> startbrushend -> endd3.svg.axis().scale( y ).orient( 'left' );->d3.axisLeft(y)d3.svg.axis().scale( y ).orient( 'right' );->d3.axisRight(y)d3.svg.axis().scale( x ).orient( 'bottom' );->d3.axisBottom(x)d3.svg.axis().scale( x ).orient( 'top' );->d3.axisTop(x)d3.layout.histogram.value(d => d.value).bins( x.ticks( 24 ))
=>d3.histogram(d -> d.value).thresholds(x.ticks( 24 ))this.chart.brush.empty()->d3.event.selection === null
more https://stackoverflow.com/questions/42781226/d3-js-v3-to-v4-brush-changes