This is document gives a few insights on how to add brushing with d3.js. It is composed by several interactive examples, allowing to play with the code to understand better how it works.
d3.brush()
.d3.brush
.
.extent()
property specify the area where
it is possible to brush: top left and bottom right corners
of the rectangle.
d3.brushX()
and
d3.brushY()
.
d3.brushX
instead of
d3.brush
and you get a 1 dimensional brush.
.on("start end", ...)
.on("start end", ...)
when the brush is
created. This will trigger the function
updateChart
each time a new brush is made.
d3.event.selection
.classed
selected
class is added to the circle if it
is in the selection.
.classed
function is very handy since it
automatically removes the class if elements are not in the
selection anymore.
!important
in the css part is
necessary to overwrite a feature that specified in the
javascript part.
clipPath
is used to avoid displaying the
circle outside the chart area.
all(brush.move, null)
is used to dismiss the
grey brushing area once the selection has been done.