Open Source Graphing Engines

We came to the conclusion that we needed to roll our own Business Quadrant Charts and started the search for a suitable open source graphing engine that we could easily incorporate into Drupal.

We separated the problem into two distinct architectural areas:

  1. the ability to extract the (x,y) data series from Drupal content
  2. the ability to display a Business Quadrant Chart based upon the (x,y) data series

Based upon our earlier work with Drupal Charts we decided to solve the data extraction problem with Views. We would model it after Charts and customize the output data format to match the input required by the chosen graphing engine.

We desired a graphing engine that already provided support for the majority of our features. Our basic MUST HAVE requirements were:

  • being able to arbitrarily label the x axis
  • being able to arbitrarily label the y axis
  • specify x axis min and max
  • specify y axis min and max
  • provide a tooltip / popup / mouse over label for each data point
  • provide a clickable url for each data point (to support drill down to details)

Some NICE TO HAVE requirements were:

  • being able to control use of grid lines
  • ability to provide x and y axis Titles

We were not too concerned about the technology, but assumed a client browser side product that used Javascript. A quick search turned up 2 potential options to start our investigation with:

rgraph had support for scatter charts. graphael supported something called dot charts.

A quick survey of graphael's dot chart indicated that it should provide the majority of our requirements. Based on our time deadlines we decided to proceed with a graphael prototype without really looking at rgraph.

graphael source code was available, so we could make any minor modifications that we needed. It was deemed low effort, low risk technology.