BT

Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ

Topics

Choose your language

InfoQ Homepage News Dojo Gains Charting Engine

Dojo Gains Charting Engine

Bookmarks

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)
---------Series

A 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).
The test page showcases what the charting engine can do:

Rate this Article

Adoption
Style

BT