Libraries
M Chart supports two charting libraries: Chart.js (default) and Highcharts (optional).
Chart.js
Chart.js is the default library and is bundled directly with M Chart. It is released under the MIT license, making it fully GPL-compatible and suitable for use in any WordPress project without additional licensing concerns.
As of version 2.1, Chart.js supports all chart types and settings previously available in the Highcharts version of this plugin. And now supports additional chart types that the Highcharts Library Plugin does not support (Treemap, Boxplot, Violin, Venn, and Euler charts).
Highcharts
Highcharts is available via the separate M Chart Highcharts Library plugin. Install and activate that plugin alongside M Chart to enable Highcharts as a library option in the M Chart settings. If you're still using it, its documentation lives in the Highcharts Guide.
Deprecated
The M Chart Highcharts Library is deprecated and will not receive further updates. The M Chart implementation of Chart.js now matches Highcharts feature-for-feature, supports additional chart types, works with M Chart Pro, is more performant, and isn't burdened by expensive commercial licensing requirements. See Migrating Highcharts Charts to Chart.js below.
Highcharts Licensing
Highcharts now requires a commercial license for use on many websites. Review the Highcharts licensing page before using it in production. I now recommend Chart.js for most users due to Highcharts' increasingly strict and expensive licensing terms.
Switching Libraries
The default library is selected in the M Chart Settings page (Charts → Settings). All charts on the site use the library they were created in. Switching libraries does not migrate chart data, but the underlying data format is compatible meaning you can copy/paste the data from a Highcharts chart and use it in a Chart.js chart of the same type.
Migrating Highcharts Charts to Chart.js
As of version 2.3, whenever your site has Highcharts charts an admin notice offers a one-click Migrate charts to Chart.js button. While the Highcharts library plugin is active the notice can be dismissed; when it isn't active the notice stays (those charts won't display without it). Migration is safe and immediate because the stored chart data is now identical between the two libraries:
- All chart data, types, titles, units, and settings carry over unchanged — every Highcharts chart type exists in Chart.js
- The
_defaultandColor Blind Safethemes carry over directly; the legacy Highcharts 2.x/3.x themes are remapped to the bundledHighcharts 4.xChart.js theme (custom theme slugs are left in place and fall back to the default palette until you assign a Chart.js theme) - Each chart's generated image refreshes the next time that chart is saved in the editor — until then the previously generated image continues to be used
Developers can adjust the theme remapping with the m_chart_migrate_theme_map filter.