我使用小提琴上的样本创建了一个带有向下钻取的图表
当我点击第一级时,使用
成功添加下一级别的图表 chart.addSeriesAsDrilldown(e.point, series);
我的问题是,现在我想要新添加的图表也有钻取。我不知道如何实现这一目标。任何帮助都会感激不尽。
此致
答案 0 :(得分:1)
我找到了解决方法。实际上,当数据从网络服务获取为json以进行下一级别的深入分析时,我必须确保将属性向下钻取设置为 true ,这是我之前没有做的经过一些研究后我发现了它。我在下面以json格式给出了一些数据,参考了关于小提琴的例子。
当点击第一级时,我将转到Web服务并以
的形式获取数据 "{\"name\":\"Animals\",\"data\": [[\"Cows\", 2],[\"Sheep\", 3]],\"drilldown\": true}"
未启用下一级别的下钻。为了进一步深入挖掘,我不得不修改上面的数据,如下所示我已经添加了属性drilldown为真
(name == "Animals") resp = "{\"name\":\"Animals\",\"data\": [{\"name\":\"Cows\", \"y\": 2, \"drilldown\": \"true\"},{\"name\":\"Sheep\",\"y\": 3,\"drilldown\":\"true\"}]}";
这就是全部,看起来很简单:) 如果我有时间,将尝试在Fiddle上创建样本,如果这样做,将更新链接。
答案 1 :(得分:0)
$(function () {
// Create the chart
$('#container').highcharts({
chart: {
type: 'column',
events: {
drilldown: function (e) {
if (!e.seriesOptions) {
var chart = this,
drilldowns = {
'Animals': {
name: 'Animals',
data: [
['Cows', 2],
['Sheep', 3]
]
},
'Fruits': {
name: 'Fruits',
data: [
['Apples', 5],
['Oranges', 7],
['Bananas', 2]
]
},
'Cars': {
name: 'Cars',
data: [
{
name: 'Toyota',
y: 4,
drilldown: true
},
['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: []
}
})
});