the kdmcinfo weblog

Protovis JavaScript Charts vs Google Gadgets

We've been discussing the merits of 3rd party data visualization services at KDMC lately. Services like Many Eyes and Google Docs provide a valuable service by offering easy-to-use visualization tools. They are a terrific way to get started. But there are drawbacks, namely:

  • Tools use different programming languages such as Flash, Java and JavaScript, which can be hard to track.
  • Flash charts aren't viewable on iPads and iPhones and struggle on some mobile devices.
  • Most tools don't offer the design control critical to good storytelling with data.
  • Your data lives in the cloud, so when a service falters or goes out of business, your graphic stops working. (I've witnessed this several times in the last few months)

As an alternative, we are developing tutorials to create charts with the Protovis JavaScript library.  It eliminates the problems listed above and is open source so you can copy and reuse code developed by others. If you have a modern browser (FireFox, Chrome, Safari or Internet Explorer 9) you can see the example below. You can also view the page source in your browser to see how I built it.

But Protovis has it's own requirements:

  • It uses SVG graphics and requires a modern browser. A plugin can be added to older versions of IE and there are efforts by third parties to make Protovis compatible back to IE7.
  • While you don't have to learn JavaScript to use Protovis, you will need to wade in a shallow pool of code. If you understand html, you should be fine.
  • And most importantly, you need to load the Protovis Library on your Web server. That means you must have FTP access or know someone who does so they can load it for you.

A video tutorial on basic Protovis chart types was posted yesterday. A text version will be done soon and more are in the works. We will also teach Protovis at our Interactive Census Workshop in December. Applications are open until Nov. 6.

So what do you think? Are you willing to do a little extra work to have more design control and have your graphic display on more mobile devices?