Today, Greenplum and SitePen announced the contribution of the new Charting engine to the Dojo Toolkit. The Charting engine is a cross-browser way of creating very complex charts easily, that can be updated on a regular basis. From the readme:
The Dojo Charting Engine is a (fairly) complex object structure, designed to provide as much flexibility as possible in terms of chart construction. To this end, the engine details the following structure:Chart
---PlotArea
------Plot
---------Axis (axisX)
---------Axis (axisY)
---------SeriesA Chart object is the main entity; it is the entire graphic. A Chart may have any number of PlotArea objects, which are the basic canvas against which data is plotted. A PlotArea may have any number of Plot objects, which is a container representing up to 2 axes and any number of series to be plotted against those axes; a Series represents a binding against two fields from a data source (initial rev, this data source is always of type dojo.collections.Store but this will probably change once dojo.data is in production).
The main features:
- A Chart can have multiple “PlotAreas” (the actual charts)
- A PlotArea can contain multiple Plots (x/y axis + N data series)
- Data series are bound at run-time to a dojo.collections.Store object, with flexible field bindings.
- An Axis can have custom labeling schemes.
- See below for plot types.
- Each plotter can take a function at render, which will be called for every data point in that series–the node representing the point is passed, as well as the entire source object the point represents.
- PlotAreas provide a facility for assigning colors to series (basically it has a built in HSV generator)
- All browsers but WebKit are supported in full.
- Rendering can be granular; right now the test only runs rendering once, but it was designed to all of constant rendering if needed.
- A range of data points can be plotted (instead of the full data set) if so desired.
- Trend methods are available for data analysis (but no specific plotters are built for it yet).