如何使Highcharts明细与多列一起使用

时间:2012-10-23 20:31:08

标签: jquery highcharts

这是Highcharts论坛的一个老问题, http://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=2&ved=0CC4QFjAB&url=http%3A%2F%2Fwww.highslide.com%2Fforum%2Fviewtopic.php%3Ff%3D9%26t%3D16573&ei=J_2GUM7fEoSC9QT0lICoCA&usg=AFQjCNGq_GxmSd0YUxWUyy96UHLZA0zb9w&sig2=RzAkhldNbvCowk8I1kmRVg

我今天正在实施它,论坛帖子上的解决方案也奏效了。但是,我需要制作一个自定义解决方案,这是一个包含3列的2级向下钻取图表。为了澄清,论坛上提供的解决方案仅适用于第一个图表上的2列,然后是钻取中的1列。我的图表在初始图表和向下钻取图表上都需要3列。

我无法理解深入过渡以及它是如何工作的,因此我很难自定义代码。实现中还有相当多的重复代码,因此如果有人对Highcharts明细有更好的理解,请随时分享一些关于如何使其工作的建议。

代码的关键部分是

            var drilldown = this.drilldown;

            if (drilldown) { // drill down
               setChart(drilldown.name, drilldown.categories, drilldown.data, drilldown.color);
            } else { // restore
                 setChart(name, categories, data);

             }

和setChart():

function setChart(name, categories, data) {
        chart.counters.color = 0;
        chart.xAxis[0].setCategories(categories);
        while (chart.series.length > 0){
            chart.series[0].remove(true);
        }
        for (var i = 0; i < data.length; i++) {
            chart.addSeries({
                name: name[i],
                data: data[i]
            });
        }
    }

如何确定this.drilldown和setChart()的输入是使其正确的关键。

我尝试过的小提琴是:http://jsfiddle.net/dTkh4/2/

1 个答案:

答案 0 :(得分:0)

答案在

var drilldown = this.drilldown;

if (drilldown) { // drill down
   setChart(drilldown.name, drilldown.categories, drilldown.data);

} else { // restore
   setChart([name1, name2, name3], categories1, [data1, data2, data3]);
}

要使钻取视图显示3个拆分列,drilldown.name和drilldown.data需要是3的嵌套数组,并且每个子数组都包含每个类别的值。对于还原部分,添加name3以在还原时显示3列而不是2。