ming86 / highcharts-downsample

Downsample plugin for Highcharts.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

highcharts-downsample: Downsample plugin for Highcharts

This plugin for Highcharts downsamples data before rendering the chart. The purpose is to try retain the visual characteristics of the original line using considerably fewer data points. The algorithm (called Largest-Triangle-Three-Buckets) used in this plugin is described in a Master's thesis (see hdl.handle.net/1946/15343) in Computer Science by Sveinn Steinarsson at the University of Iceland. The topic of the thesis is how to downsample time series for visual representation and was initially suggested by DataMarket. JavaScript optimization was done with the help of Borgar Þorsteinsson.

Demo

Demo can viewed at highcharts.base.is.

Additional demo is also available in JSFiddle

To load a module

import * as Highcharts from 'highcharts/highcharts';
import HighchartsDownSample from 'highcharts-downsample';
HighchartsDownSample(Highcharts);

Usage

series: [{
  downsample: {
    threshold: 1000 // 0 disables downsampling for this series.
  },
  data: // Your data (array of arrays with two values or array of numerical values)
}]

Notes

This plugin is mainly for downsampling line charts but might work for other types, e.g. area or column. The recommended input data format is array of arrays with two values. Array of numerical values is also supported but might be slower. Array of objects and range series are not supported!

Known limitations

  • Does not support gaps (null values) in the data array.
  • X-values must be in a strictly increasing order.

Articles about the algorithm (LTTB)

The algorithm (LTTB) adapted for other programming languages or frameworks

Note: I have not tested all these versions and some might have different or additional features.

(Please let me know if you make your own port of the LTTB algorithm so I can list it here.)

License

highcharts-downsample is released under the terms of the MIT License.

About

Downsample plugin for Highcharts.


Languages

Language:JavaScript 68.7%Language:HTML 20.0%Language:CSS 11.4%