DC.js for D3-Based Data Visualizations

November 4, 2013 Stephen Levine

A recent, shorter-term project prompted us to search for a library that would let us rapidly develop featureful charts that could be customized using D3. We were concerned that starting from scratch in D3 would use too much of our resources, especially because the project had close deadlines that required functional visualizations. We also needed a library that was well tested and actively maintained. The only library we could find that seemed to fit our needs was DC.js.

DC.js is a fairly young project started by Nick Zhu, the author of the D3 Cookbook. DC provides an easy way to create numerous types of charts with fancy features such as scrolling, scrubbing, and complex interactions between charts. It also uses Crossfilter, a map-reduce library, to quickly process large amounts of data. This makes DC suitable for larger-scale data visualizations that need to be responsive and interactive.

While using DC, we fixed several issues, added needed tests, and implemented a number of new features that we required. After the initial project concluded, we decided to continue contributing to DC using time Pivotal allots to open source projects we find useful. So far, we have:

  1. Boosted test coverage to over 90%
  2. Began to switch the test suite from Vows to Jasmine, with the blessings of the current maintainers
  3. Fixed bugs and added features that we felt would make DC a more useful tool for both the community and for Pivots in future projects

So if you have an upcoming data visualization project and don’t want to write tons of scaffolding code in D3, consider DC.js as an alternative. Annotated examples are available here.

To get started contributing to DC.js :

git clone https://github.com/dc-js/dc.js
cd dc.js
npm install

And run the test suite with:

grunt test

About the Author


Suds Menon – Gemfire
Suds Menon – Gemfire

Suds Menon, one of the key architects of Gemfire, and Catherine Johnson, a Data Strategist with VMware, giv...

RSpec formats and the Single Responsibility Principle
RSpec formats and the Single Responsibility Principle

For years, my unit tests have largely followed the “method spec” format: describe SomeObject do describe ...

SpringOne 2021

Register Now