Compare multiple series
author(s):
Torstein Hønsi
HTML
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<script src="https://code.highcharts.com/stock/modules/export-data.js"></script>
<script src="https://code.highcharts.com/stock/modules/accessibility.js"></script>
<div id="container"></div>
CSS
body {
background: var(--highcharts-background-color);
color: var(--highcharts-neutral-color-100);
}
#container {
height: 400px;
min-width: 310px;
}
JavaScript
// Data from nasdaq.com
(async () => {
const names = ['MSFT', 'AAPL', 'GOOG'];
/**
* Create the chart when all data is loaded
* @return {undefined}
*/
function createChart(series) {
Highcharts.stockChart('container', {
rangeSelector: {
selected: 4
},
yAxis: {
labels: {
format: '{#if (gt value 0)}+{/if}{value}%'
},
plotLines: [{
value: 0,
width: 2,
color: 'silver'
}]
},
plotOptions: {
series: {
compare: 'percent',
showInNavigator: true
}
},
tooltip: {
pointFormat: '<span style="color:{series.color}">' +
'{series.name}</span>: <b>{point.y}</b> ' +
'({point.change}%)<br/>',
valueDecimals: 2,
split: true
},
series
});
}
const series = [];
for (const name of names) {
const response = await fetch(
'https://cdn.jsdelivr.net/gh/highcharts/highcharts@f0e61a1/' +
'samples/data/' + name.toLowerCase() + '-c.json'
);
const data = await response.json();
series.push({ name, data });
}
createChart(series);
})();