This JSFiddle demo显示了Highcharts明细的示例.单击图表中的某列时,系列将替换为与单击的列对应的向下钻取系列
drilldown: { series: [{ id: 'animals',data: [ ['Cats',4],['Dogs',2],['Cows',1],['Sheep',['Pigs',1] ] },{ id: 'fruits',data: [ ['Apples',['Oranges',2] ] },{ id: 'cars',data: [ ['Toyota',['Opel',['Volkswagen',2] ] }] }
例如,如果单击fruits列,将显示此数据
data: [ ['Apples',2] ]
请注意,必须预先创建所有向下钻取系列.在这种特殊情况下,只有3个向下钻系列,所以这不是一个大问题.但是,在我的情况下,大约有30个向下钻取系列,并且创建每个系列需要执行一些查询.有没有办法让钻取系列延迟加载,即仅在用户点击其中一列时请求钻取系列数据?
解决方法
对于这个级别的功能,我会继续自己创建它.使用point.events.click回调进行ajax调用并替换系列:
plotOptions: { series: { point: { events: { click: function(event) { var chart = this.series.chart; var name = this.name; $.ajax({ url: name + ".json",success: function(data) { swapSeries(chart,name,data); },dataType: "json" }); } } } } },
swapSeries在哪里:
function swapSeries(chart,data) { chart.series[0].remove(); chart.addSeries({ data: data,name: name,colorByPoint: true }); }
这是一个工作example.