Every repository with this icon (
Every repository with this icon (
| name | age | message | |
|---|---|---|---|
| |
.gitignore | Fri Sep 11 09:20:31 -0700 2009 | |
| |
MIT-LICENSE | Sun Jul 05 01:26:23 -0700 2009 | |
| |
README.textile | Mon Jul 20 02:31:45 -0700 2009 | |
| |
ico.js | Fri Sep 11 09:20:31 -0700 2009 | |
| |
index.html | Fri Sep 11 09:20:31 -0700 2009 | |
| |
prototype.js | Tue Jan 13 03:25:25 -0800 2009 | |
| |
raphael.js | Thu Jun 25 03:06:47 -0700 2009 | |
| |
test/ | Mon Sep 07 07:45:11 -0700 2009 |
Introduction
Ico is a JavaScript graph library that uses Raphael to draw. This means it can draw charts in multiple browsers.
The current version is a basic implementation to test out the feasibility of the concept.
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
- Remove JavaScript library dependency
- Package more normalisation code
- 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).








