javascript - 懒惰的 Highcharts 向下钻取

标签 javascript highcharts

This JSFiddle demo显示 Highcharts 向下钻取的示例。当您单击图表中的其中一列时,该系列将替换为与所单击的列相对应的向下钻取系列

drilldown: {
    series: [{
        id: 'animals',
        data: [
            ['Cats', 4],
            ['Dogs', 2],
            ['Cows', 1],
            ['Sheep', 2],
            ['Pigs', 1]
        ]
    }, {
        id: 'fruits',
        data: [
            ['Apples', 4],
            ['Oranges', 2]
        ]
    }, {
        id: 'cars',
        data: [
            ['Toyota', 4],
            ['Opel', 2],
            ['Volkswagen', 2]
        ]
    }]
}

比如点击fruits栏,就会显示这个数据

data: [
    ['Apples', 4],
    ['Oranges', 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, name, data) {
    chart.series[0].remove();
    chart.addSeries({
      data: data,
      name: name,
      colorByPoint: true
    });
  }

这是一个有效的 example .

关于javascript - 懒惰的 Highcharts 向下钻取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26801793/

相关文章:

javascript - Angular 4+ 中特定路由的 HTTP_INTERCEPTOR

javascript - 无法在 jsx 渲染中获取状态值

javascript - 我可以生成一个 Web Worker 并将 JavaScript 函数从父级 "process"注入(inject)其中吗?

javascript - 单击 jquery 添加类时屏幕闪烁

javascript - Highcharts JS : Gap between X-Axis labels is too thin

jquery - 使用 .val 时,Highchart 不会从隐藏输入加载数据

javascript - 如何使用qgis生成的自定义 map json在highmaps中实现mapbubble?

javascript - Highchart 未捕获错误 - 未捕获 TypeError : $(. ..).highcharts 不是函数

javascript - 单击时复选标记无响应

canvas - 对 HighCharts、D3 和 Canvas 绘图进行基准测试