Highcharts Stock Demo
author(s):
Torstein Hønsi
by oysteinmoseng
HTML
<div id="container"></div>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
CSS
#container {
height: 400px;
min-width: 600px;
}
JavaScript
(async () => {
const names = ['MSFT', 'AAPL', 'GOOG'];
/**
* Create the chart when all data is loaded
*/
function createChart(series) {
Highcharts.stockChart('container', {
title: {
text: 'Series compare by <em>percent</em>'
},
subtitle: {
text: 'Compare the values of the series against the first ' +
'value in the visible range'
},
rangeSelector: {
selected: 4
},
yAxis: {
labels: {
formatter: function () {
return (this.value > 0 ? ' + ' : '') + this.value + '%';
}
}
},
plotOptions: {
series: {
compare: 'percent'
}
},
tooltip: {
pointFormat: '<span style="color:{series.color}">' +
'{series.name}</span>: <b>{point.y}</b> ' +
'({point.change}%)<br/>',
changeDecimals: 2,
valueDecimals: 2
},
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();
if (name === 'AAPL') {
data[data.length - 10][1] *= 1.4;
}
series.push({ name, data });
}
createChart(series);
})();