dc.js is one of those libraries that completely blows client&#x27;s minds. The hard thing to do as a developer is not to try and filter the data too much. dc.js lets the end-user filter the data interactively and create their own stories, you just have to work out the questions each chart lets the user ask. <a href="http:&#x2F;&#x2F;dc-js.github.io&#x2F;dc.js&#x2F;" rel="nofollow">http:&#x2F;&#x2F;dc-js.github.io&#x2F;dc.js&#x2F;</a><p>As it sits on top of crossfilter (<a href="http:&#x2F;&#x2F;square.github.io&#x2F;crossfilter&#x2F;" rel="nofollow">http:&#x2F;&#x2F;square.github.io&#x2F;crossfilter&#x2F;</a>) you can also do unusual things behind the scenes to the data sets. As an example, I used google maps to restrict datasets to the current map view. Worked surprisingly well. <a href="http:&#x2F;&#x2F;www.bathhacked.org&#x2F;projects&#x2F;hacked21-food-standards&#x2F;" rel="nofollow">http:&#x2F;&#x2F;www.bathhacked.org&#x2F;projects&#x2F;hacked21-food-standards&#x2F;</a>