axisJS
Ændrew Rininsland for The Times and Sunday Times
2014axisJS is a light Angular-based app for generating charts. It combines with the AxisWP WordPress plugin to add rich charting capabilities to WordPress.
axisJS is built atop the Yeoman Angular generator and currently makes use of C3 to build charts.
axisJS owes a huge debt of gratitude to Quartz's ChartBuilder, from where much of the PNG/SVG output code is taken (in addition to some of the interface design).
Bower
bower install axisjs
Project goals
- Enable easy integration of various D3-based frameworks into a simple interface
- Enable a wide array of data input methods
- Be modular enough to allow charting frameworks to easily be replaced
- Allow for straight-forward customisation and styling
- Allow for easy integration into existing content management systems
- Allow journalists to easily create charts that are embeddable across a wide array of devices and media
To build
npm install
bower install
grunt build
Modifying
The source is in the app
folder, which gets built to dist
when you do grunt build
.
When working on it, run grunt serve
to invoke a light HTTP server that auto-reloads the page
when you save a file. Styles are in Sass at app/styles
.
Contributing
Please do a new feature branch when forking and squash your commits before making a pull request. Pull requests welcomed and encouraged. I especially welcome any documentation or unit testing PRs!
API Docs
Inline documentation is in ngDoc format and gets built to docs
during grunt build
.
View API docs online here.
Roadmap/ToDos
- Abstract chart configuration into a provider so that
app/scripts/directives/buildchart.js
andapp/scripts/directives/exportchart.js
aren't so tightly bound to C3 - ALL the unit tests
- Documentation and cleanup of
buildchart.js
andexportchart.js
- Abstract each output format into factories so more can be modularly added
- Abstract out vendor functionality — i.e., make the colour picker replaceable
- Create an external config file with settings like colour scheme
- Improve inline documentation
- Fix "ui-grid" for tabular data import
- Make adding categorical axes more straight-forward
- Create adapters for nvd3 and other SVG-based charting libraries.