Настройка старшей диаграммы, которая может вызывать API для нескольких уровней данных асинхронно. По щелчку точек данных я хочу, чтобы старшая диаграмма «addSeriesAsDrilldown» сохранила все события детализации и параметры диаграммы без изменений.
Это для набора данных с иерархической архитектурой. Например, если я хочу получить 10 лучших результатов R & B за май 2010 года, мои данные сначала покажут точки данных, подобные этой:
R & B
И затем щелкните точку данных 2010:
R & B ^ 2010
А затем нажмите Точка данных мая:
R & B ^ 2010 ^ мая
Мы использовали addSeriesAsDrilldown, но это помогает нам только для первого уровня данных.
$('#container').highcharts({
chart: {
type: 'column',
events: {
drilldown: function (e) {
if (!e.seriesOptions) {
var chart = this,
drilldowns = {
'Animals': {
name: 'Animals',
data: [
{name: 'Sheep',
y:5,
drilldown: true
},
['Cow', 3]
]
},
'Fruits': {
name: 'Fruits',
data: [
['Apples', 5],
['Oranges', 7],
['Bananas', 2]
]
},
'Cars': {
name: 'Cars',
data: [
['Toyota', 1],
['Volkswagen', 2],
['Opel', 5]
]
}
},
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: [{
name: 'Animals',
y: 5,
drilldown: true
}, {
name: 'Fruits',
y: 2,
drilldown: true
}, {
name: 'Cars',
y: 4,
drilldown: true
}]
}],
drilldown: {
series: []
}
});
Ожидаем, что наши выходные данные будут иметь правильные данные при развертывании и понижении, не нарушая график.