Last updated April 16, 2016. Created on October 27, 2014.
Edited by Pierre.Vriens, thomas_rz, enriqe, m.stenta. Log in to edit this page.


Comparison of Charting modules

Charts can help you visualize vast amounts of data in a way that is easily understood. Similar to the saying "A picture is worth more than 1000 words," one may say "A chart is worth more than 1.000 reports" ...

About charting modules

There are a variety of modules that facilitate the creation of charts. When it comes to charting in Drupal, the saying "There's a module for it" doesn't really apply. In this case, it's more accurate to say, "There are plenty of modules for it" ...

These modules support for various charting libraries that may be desirable based on a site's desired appearance, feature-set, and licensing needs.

Warning: The names and/or namespaces of some of the modules, in combination with the various charting libraries they support, can be very confusing! Furthermore, it can be difficult to keep track of which charting module depends on another charting module, or which one is still supported. For anyone getting scared, help might be on the way in the form of #2368793: Chart 2.0 ...

Charting wrapper modules

Charting wrapper modules are modules that support the creation of charts, but which depend on at least 1 native charting module, further explained below, to produce such charts.

Below is a list of charting wrapper modules:

  • Rate provides flexible voting widgets for nodes and comments. Optionally it displays the vote results in a chart if the Chart module is available.
  • Google Analytics Reporting provides graphical reporting of a site's tracking data. Graphical reports include a dashboard widget for administrators, a small path-based report in blocks, and a full path-based report. It currently uses the Chart module, though the next release will switch to using the Charts module.
  • The Quiz Stats submodule of Quiz (used to create graded assessments) provides charts using the Charts module.
  • The Yandex.Metrics Reports submodule of Yandex.Metrics integrates a website with the Yandex.Metrica, which is an alternative to Google Analytics. It provides charts using the Charts module.
  • The Advertisement module is a powerful advertising system with basic graphical reports created using the Chart module.
  • Commerce Reporting provides a reporting system for Drupal Commerce via an advanced reports dashboard using the Charts module.
  • Support Ticketing System provides a basic ticketing system and helpdesk that is native to Drupal. Optionally it generates basic charts from ticket statistics if the Chart module is available.
  • Search Log generates charts (some nice eye-candy ...) if the Chart module is available.
  • Quant (beta version only for D7, and a D6 version) provides an engine for producing quantitative, time-based analytics for virtually any Drupal component. It takes raw data about normal Drupal actions, such as node creation, and plots the activity over time, with the selected time being configurable. It uses the Chart module.
  • Webform Chart displays webform results in a graphical manner using either the Chart or Charts module.
  • Webform Charts (beta version only), not to be confused with Webform Chart, integrates the Webform module with the Charts module. It integrates with the "Analysis" tab of a Webform to provide charts for each individual component's analytical data.
  • Drupal Remote Dashboard monitors and manages any number of Drupal installations at once. Optionally the monitoring data will be made visible in graphs if the Chart module is available.
  • Poll Chart Block displays poll's results in a block, with a selectable chart type, and using the Chart module.
  • Bugzilla Dashboard (D6 release only) sets up a Bugzilla query to run over a set period of time, at a given frequency, and pick up on specific data to display in a chart.
  • CSV Chart, which only has a D5 version for now, though recently #2368967: Upgrade to Drupal version 6 and #2368971: Upgrade to Drupal version 7 were announced.
  • The Views Chart Tools module (dev version only) integrates the advanced features of the interactive HTML5 charts of the Google Chart Tools API with the query building abilities of views. It uses view results to render interactive visualizations containing multiple charts and controls and depends on the Google Chart Tools for Drupal module.
  • The Charts RGraph module (alpha version only) is a canvas and JavaScript based charts library built for web charts. It supports views through the Charts module.
  • The Statistics Pro module, which creates statistics with aggregated data. The data is stored in a new table, which is updated with a cron run. It provides statistical results of nodes, comments and users. When specific modules are enabled, it enables specific features which depend one those modules, such as page visualization reports and graphs.
  • Views Charts (dev version only for D7, and a D6 version, which requires Views GroupBy), not to be confused with Views Chart Tools, provides a "charts" style output for Views to render the result-set not just as text (list, tabular) but as a PieChart, BarChart, ScatterPlot etc. It has basic usage instructions available as Advanced Help pages. Install and enable it to see the available help. A great presentation about it was done during DC DrupalCon '09.
  • The Charts and Graphs Flot module, which adds Flot support for the Charts and Graphs module using the Flot module.

The table below contains an overview of charting wrapper modules and their dependencies upon any of the native charting modules:

  Forena Google
Chart
Tools
Chart Charts Charts
and
Graphs
Flot
Rate - - Yes - - -
Google Analytics Reporting - - Yes (D6) Yes (D7) - -
Quiz - - - Yes - -
Yandex.Metrics - - Yes - - -
Advertisement - - Yes - - -
Commerce Reporting - - - Yes - -
Support Ticketing System - - Yes - - -
Search Log - - Yes - - -
Quant - - Yes - - -
Webform Chart - - Yes (D6) Yes (D7) - -
Webform Charts - - - Yes - -
Drupal Remote Dashboard - - Yes - - -
Poll Chart Block - - Yes - - -
Bugzilla Dashboard - - - Yes - -
CSV Chart - - Yes (D5) - - -
Views Chart Tools - Yes - - - -
Charts RGraph - - - Yes - -
Statistics Pro - - - - Yes -
Views
Charts
- - - - Yes -
Charts and Graphs Flot - - - - Yes Yes

Native charting modules

Native charting modules are modules that support the creation of charts, but which do not depend on other modules to produce such charts. These modules may depend on other Drupal modules (e.g. the libraries module), but these other modules are not related to the charting features they offer. Typically these native charting modules use one or more charting related libraries.

An extensive comparison of modules that depend on the Highcharts javascript library can be found here.

Below is a list of native charting modules, for which at least 1 official release exist:

Some additional native charting modules, but for which no official release exists yet:

  • Views Gantt (beta version only), which provides a views display plugin to show tasks in a GANTT Chart using the (open source) dhtmlx GANTT javascript library.
  • Data Visualization API (beta version only), which allows site builders to create, import & store data visualizations as entities and their data as standardized JSON. A user can then choose which installed data visualization library to use when rendering each data visualization entity.
  • HighchartTable (beta version only) transforms any HTML table on a site into a Highchart by clicking on the cogwheel above it. It doesn't matter whether that table was created through Views, Webform or a WYSIWYG. One click and you have a chart on your page. Easy install of the JS libraries too through Drush with Features support via Strongarm.
  • D3 creates visualizations as libraries (alpha version only) which allows one to add/remove visualizations, share them between modules, and integrate them with (for example: views) through library .info files.
  • Highcharts (alpha version only), to create charts using the Highcharts JS library.
  • Visualization API (alpha version only), which provides a theme hook that takes a data array and some options and will then render a chart in-place. It also provides a Views display plugin to visualize data retrieved through Views.
  • Google Chart Tools for Drupal (dev version only), not to be confused with Google Chart Tools !!!). It is a tool for developers to facilitate the use of Google's Chart Tools and its Visualization API within a Drupal site.

Below is an attempt to compare the charting capabilities of the native charting modules, limited to those modules for which at least 1 official release exists.

Other charting modules

Since this comparison was created, new modules related to charting have been discovered. Consequently, they are still missing in this comparison. Here is an attempt to mention a few:

  1. Views Dataviz with Google Charts API, which provides data visualisation for views.
  2. Comment #9 in #2368793: Chart 2.0 contains another list of (about 10) modules not included here. Anybody interested in getting the missing ones added here (in a similar format like being used here)?
  3. Raphaël exposing some of the functionality of the Raphaël JavaScript vector graphics library.
  4. JpGraph is a PHP library providing a simple loader for that library.
  5. jqplot Charts Library provides a library interface for jqPlot javascript library and is used by (dependency) Webform reports.
  6. Forum Stats provides statistics on forum usage, using the Highcharts library.
  7. Chartbeat provides third party integration with Chartbeat, for real-time site monitoring statistics.
  8. ... (Which other ones should be mentioned here?).

Check out the links to those modules for more details. Better still, if you're familiar with any of these modules, get them added to the comparison here by editing this page. Adding an extra column to the right is probably the easiest approach.

Here are some other topics (not included in the comparisons below) that seem worth addressing:

Anybody interested in investigating any of these topics, and adding them to the comparison here (by editing this page)? If not, George (the one Dries talked about at DrupalCon Amsterdam 2014) will hopefully do it ... someday.

Supported Drupal versions

  Forena Google
Chart
Tools
Chart Charts Charts
and
Graphs
Flot Easychart
Drupal 8 support DEV ? #2139771 #2140651 ? ? Yes
Drupal 7 support Yes Yes Yes Warning
(rc1)
Yes Yes Yes
Drupal 6 support Yes No Yes Yes Yes Yes No

Supported Charting Libraries

  Forena Google
Chart
Tools
Chart Charts Charts
and
Graphs
Flot Easychart Highchart
Table
PHP SVG Graph Yes No No No No No No No
Google Chart Tools: Image API No No Yes No No No No No
Google Charts No Yes No Yes Yes No No No
Highcharts No No No Yes No No Yes Yes
Open Flash Chart No No No Yes ? No No No
Open Flash Chart 2 No No No ? Yes (D6) No No No
amCharts No No No No Yes (D6) No No No
Flot No No No No Yes Yes No No
D3 Yes
#2364427
No No No Yes No No No
Bluff No No No No Yes No No No
JpGraph No No No No No No No No
pChart No No No No No No No No
dhtmlx GANTT JS library No No No No No No No No

Note: if the above list of libraries isn't enough yet, then checkout the list included in Graph visualization library in JavaScript.

Available integrations

  Forena Google
Chart
Tools
Chart Charts Charts
and
Graphs
Flot Easychart
Views Yes Yes Yes Yes Yes Yes Yes
Feeds Yes ? No No ? ? No
BEAN Yes ? No No ? ? ?
Wysiwig ? ? ? ? ? ? Yes

Features

  Forena Google
Chart
Tools
Chart Charts Charts
and
Graphs
Flot Easychart
JSON support Yes
#2362855
? ? Yes
#2429505
? ?  
XML support Yes
#2437701
? ? ? ? ?  
CSV support ? ? ? ? ? ? Yes
Multilanguage support Yes ? Yes Yes ? ? Yes
IE support Yes #1987126 ? ? Yes ?  
export chart to PDF Yes #1899032 ? ? ? ? Yes
export chart to SVG ? ? ? ? ? ? Yes
export chart to jpg ? ? ? ? ? ? Yes
export chart to png ? ? ? ? ? ? Yes
Privacy Yes Attention Attention Attention ? ? ?

Issue Queue Statistics

  Forena Google
Chart
Tools
Chart Charts Charts
and
Graphs
Flot
Open Issues,
Fixed Issues,
Total Issues
33,
0,
318
49,
0,
79
50,
0,
173
82,
9,
287
27,
0,
129
59,
0,
88
Unresolved Issues /
Total Issues
10% 62% 29% 25% 21% 67%

Special Request: Seems like transforming the tabular format above in a corresponding CHART can be done via HighchartTable, but how to get this module enabled on drupal.org? As an alternative: add a row to the table with links to such chart for each of the modules, maybe with some details about the required steps to create these charts?

Maintenance Scorecards

#2186377: Highlight projects that follow Best Practices contains a list of 23 criteria (=28-5) that might help to evaluate the maintenance and support of contributed modules. Below is an attempt to apply those criteria to each of the native charting modules, however with some minor variations / interpretations to provide more accurate details.

Tip: some of the Yes and Yes icons are hyperlinked, such as the ones for (7) .

  Forena Google
Chart
Tools
Chart Charts Charts
and
Graphs
Flot
(1) No open bugs +1 year ? ? ? ? ? ?
(2) No RTBC'd items +1 month ? ? ? ? ? ?
(3) Stable release every year ? ? ? ? ? ?
(4) Last commits (*1*) Feb 11,
2015
Feb 27,
2013
Nov 14,
2014
Feb 13,
2015
Mar 2,
2015
Jul 16,
2012
(7) Community docu Yes No Yes Yes Yes No
(8) Alpha / Beta duration ? ? ? ? ? ?
(9) Recommended release present ? ? ? ? ? ?
(11) Support 2 core releases (*2*) ? ? ? ? ? ?
(12) DEV release for D8 ? ? ? ? ? ?
(13) Committers 3 6 12 3 5 4
(14) Maint- and Dev-status ? ? ? ? ? ?
(15) Image on project page ? ? ? ? ? ?
(16) SimpleTests or Unit Tests ? ? ? ? ? ?
(17) Meaningful release notes ? ? ? ? ? ?
(18) Automated testing enabled ? ? ? ? ? ?
(19) README.txt & INSTALL.txt ? ? ? ? ? ?
(20) CHANGELOG.txt ? ? ? ? ? ?
(23) Project's purpose teaser ? ? ? ? ? ?
(24) Project description +500 chars ? ? ? ? ? ?
(25) Headings & docu links ? ? ? ? ? ?
(26) Downloads
/ installs ratio
8.700
/650
38.900
/2.900
113.000
/25.900
58.300
/9.250
29.000
/2.600
12.000
/700
(27) Translations available ? ? ? ? ? ?
(28) Contributing users in commits ? ? ? ? ? ?

Notes:

  • (*1*): Variation of 'If there are open bugs, see that there is activity in git every 6 months'.
  • (*2*): Refer to Supported Drupal versions for more detailed info.

If you want to help completing or correcting the above criteria,
it's fairly easy, just a lot of work to do all the research. So please ... do so now

Charting Modules Discussions

Contribute to this comparison

The comparison above reflects Drupal developments up until early 2015. It may become incomplete or outdated (e.g. because of recent evolutions in any of these modules), and it contains some "?" marks to indicate missing information. Hopefully there are no errors in it!

If you want to help to extend, enhance, complete or correct it, please ... do so now

Looking for support? Visit the Drupal.org forums, or join #drupal-support in IRC.

Comments

NewSites’s picture

This is a very interesting comparison. What is the sort order of the lists of modules in the different categories (and therefore also of the columns in the tables)?

Pierre.Vriens’s picture

Not sure if I exactly understand what you mean with "categories" (I think the subheaders, with the various links to them in the TOC at the beginning of the page). But anyway: right now there is really no sorting, as you probably noticed. Except a kind of "grouping", in a sense that only modules for which an official release exists have there own "columns". So modules for which only a dev, alfa, beta or rc exists do not have their own column. The only exception is the "HighCharts table", which recently got added by its maintainer (I believe). I currently suffers 2 issues: it has no official release yet, and it is only added in 1 of the columns. I keep hoping that both issues soon get resolved (because I'd hate to remove a contribution to this doc from that contributor).

If we would ever implement such sorting, then I'm not sure what "order" we should use. alfabetically, by module name? Popularity (nr of installs) of modules? Something else?

Also note that here on Drupal.org, you only have limited features available for producing this kind of content. It would be nice if, e.g., the dataTables module would be available, with the fancy pagers, column sorting, etc. Are you familiar with that feature? I use it anywhere where there are HTML tables to be shown.

Does this "answer" your "question" ... even though this is not a real Q&A site? ... At least not yet ... maybe some day Drupal.org starts using the ArrayShift distribution

tcowin’s picture

I really like this comparison - it helps me evaluate which to deploy. I wish this sort of thing existed for each type or category of module. An executive summary at the top would be wonderful :). Thanks to all the contributors...

delacosta456’s picture

hi
Yes very nice comparaison trully ...and big thanks .
However non-programmer sometimes need more clarification on chart that depend on internet or not.... because sometime they work on local and most of chart tool always required internet connection...