Highcharts Demo
author(s): Torstein Hønsi
by gauravsingh
HTML
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/drilldown.js"></script>
<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>
<div id="demo"></div>
JavaScript
// Create the chart
var data_drilldown = [];
data_drilldown.push({ name: 'q1', y: 500});
data_drilldown.push({ name: 'q2', y: 200});
var data_drilldown1 = [];
data_drilldown1.push({ name: 'q1', y: 100});
data_drilldown1.push({ name: 'q2', y: 50});
data_drilldown1.push({ name: 'q3', y: 500});
var keys = [2019, '2020', '2021'];
var values = [data_drilldown, data_drilldown1, data_drilldown]
var result = Object.assign.apply({}, keys.map( (v, i) => ( {[v]: { data: values[i]}} ) ) );
console.log(result); //returns {"foo": 11, "bar": 22, "baz": 33}
var json = result;
/*
var json = {
"2019": {
data: data_drilldown
},
"ipId2": {
"name":"value",
"anotherName":"another value"
}
} */
var data = [];
data.push({ name: '2019', y: 500, drilldown: true});
data.push({ name: '2020', y: 200, drilldown: true});
Highcharts.chart('container', {
chart: {
type: 'column',
events: {
drilldown: function (e) {
if (!e.seriesOptions) {
var chart = this,
drilldowns = json,
series = drilldowns[e.point.name];
// Show the loading label
chart.showLoading('Simulating Ajax ...');
setTimeout(function () {
chart.hideLoading();
chart.addSeriesAsDrilldown(e.point, series);
}, 1000);
}
}
}
},
title: {
text: 'Async drilldown'
},
xAxis: {
type: 'category'
},
legend: {
enabled: false
},
plotOptions: {
series: {
borderWidth: 0,
dataLabels: {
enabled: true
}
}
},
series: [{
name: 'Things',
colorByPoint: true,
data: data
}],
drilldown: {
series: []
}
});