by davidpadbury

davidpadbury / node-highcharts

A sample of generating client side charts on the server using node

206 Stars 56 Forks Last release: Not found 10 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

Obsolete Warning

The initial work demonstrated here is now getting on for several years old with no signficant updates. There is now likely much better ways of achieving these objectives and I strongly suggest not using this as a base. HighCharts now provides details on their recommended approach to render entirely on the server.


An example library demonstrating how a browser based JavaScript graphing library (Highcharts) can be used from Node.


var fs = require('fs'),
    highcharts = require('node-highcharts'),
    options = {
        chart: {
            width: 300,
            height: 300,
            defaultSeriesType: 'bar'
        legend: {
            enabled: false
        title: {
            text: 'Highcharts rendered by Node!'
        series: [{
            data: [ 1, 2, 3, 4, 5, 6 ]

highcharts.render(options, function(err, data) { if (err) { console.log('Error: ' + err); } else { fs.writeFile('chart.png', data, function() { console.log('Written to chart.png'); }); } });

Bar Chart


There's a few bits to do before the library will be ready for use.

  1. Cleanup jsdom window instance correctly.
  2. Cache window so we don't load jQuery+highcharts for every render.
  3. Use a local jQuery.
  4. Update to latest Highcharts version.
  5. Investigate using CanVG and node-canvas to render with no dependencies on the environment.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.