Skip to content
aendrew edited this page Oct 22, 2014 · 2 revisions

What sets axisJS apart from a lot of other charting tools is that it's built toward extensibility and modularity. In short, it ultimately aims to be a framework to allow newsrooms to create consistent and effective charts, whether interactive or in print.

1. Enable easy integration of various D3-based libraries into a simple interface

Although libraries like C3.js and NVD3 allow users to create interactive charts in far less time than it would normally take in regular D3, they still require a degree of development skill. The goal of axisJS is to expose this level of power while giving end-users an easy, exploratory web-based interface.

2. Enable a wide array of data input methods

In the current interface, users copy and paste from a spreadsheet into a text area, though the goal is abstract this functionality so it can be easily connected to any other data source — business data or analytics feeds, for instance.

3. Be modular enough to allow charting frameworks to easily be replaced

Although it's pretty tightly coupled to C3.js at the moment, the goal is to make it extensible enough to work with other D3.js-based abstractions, or even possibly non-D3 based libraries like HighCharts.

4. Allow for straight-forward customisation and styling

Any tool that doesn't let newsrooms set their own styles on charts isn't very useful. axisJS is built to allow easy styling of charts and to ensure users stay within those styles.

5. Allow for easy integration into existing content management systems

While currently this is limited to WordPress via the Axis for WordPress plugin, a goal is to abstract output formats to an extent that embedding axisJS in any CMS will be a fairly straight-forward endeavour.

6. Allow journalists to easily create charts that are embeddable across a wide array of devices and media

Charts should look amazing, regardless of the platform they're viewed on. Mobile usually gets the short end of the stick when it comes to charting, but this doesn't have to be the case.