/ico

JavaScript graph library based on Raphael

Primary LanguageJavaScriptMIT LicenseMIT

Introduction

Ico is a JavaScript graph library that uses Raphael to draw. This means it can draw charts in multiple browsers (including IE).

Raphael is the only dependency.

View Examples.

Targeted graph types

  • Sparklines
  • Line graphs
  • Bar graphs

Design considerations and goals

  • Clarity: Use of white-space to help lend clarity to graphs, nominal scale vs. ordinal scale
  • Simplicity: Minimal use of decorations and lines, reliance on the Gestalt principle of closure
  • Conciseness: Avoidance of graph types that don’t efficiently present data (pie charts, radar maps)

These goals are based on recommendations in Stephen Few’s books:

  • Show Me the Numbers: Designing Tables and Graphs to Enlighten
  • Information Dashboard Design

Which was generally in turn based on Edward Tufte’s work.

Test-Driven

I’ve been rebuilding sections of the library with unittest.js from scriptaculous. Unit tests can be run in a browser by loading the HTML files. I’m also using these tests to help profile the library and improve performance.

Todo

  • Humanize labels: rather than showing 1,000,000 optionally show “1m”

Examples

See index.html for current API usage. This will change as I evolve the API to support the targeted graph types.

Requirements

Library style

I’ve added semicolons to line endings to make compressing/obscuring the library easier (if you do that sort of thing).