首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Highcharts堆叠柱状图从JSON向下钻取3级

Highcharts堆叠柱状图从JSON向下钻取3级
EN

Stack Overflow用户
提问于 2021-05-12 03:20:26
回答 1查看 18关注 0票数 0

我有以下JSON:

代码语言:javascript
复制
mock_json = {
    "name":"Twin",
    "clus":[
     {
        "name": "Bob",
        "amount":
          {
            "low":2000,
            "sweet":700
          },
        "top_level": [
          {
            "name": "Andy",
            "amount":
              {
                "low":100,
                "sweet":80
              },
            "low_level": [
             {
                "name":"Dave",
                "amount":
                  {
                    "low":100,
                    "sweet":100
                  }
             }
            ]
          }
         ]
     }
    ]
}

我想要一个像这样的highcharts堆叠柱状图,它向下钻取3级:第一级-clus -> name,列拆分为amount-> low and high二级-top_level -> name,列拆分为amount -> low,hign第三级:-low_level -> name,column split,amount -> low and hign

我想用jquery来实现这一点。

EN

回答 1

Stack Overflow用户

发布于 2021-05-12 21:02:05

这个数据结构并不是很混乱,但是我假设你不能改变它。尝试使用此解决方案:

代码语言:javascript
复制
events: {
  drilldown: function(e) {
    console.log(e.point.name)
    if (!e.seriesOptions) {

      var chart = this,
        drilldowns = {
          'Bob': {
            name: 'Low',
            color: '#3150b4',
            data: [{
              name: data.clus[0]['top_level'][0].name,
              y: data.clus[0]['top_level'][0].amount.low,
              drilldown: true
            }]
          },
          'Andy': {
            name: 'Low',
            color: '#3150b4',
            data: [{
              name: data.clus[0]['top_level'][0]['low_level'][0].name,
              y: data.clus[0]['top_level'][0]['low_level'][0].amount.low,
              drilldown: true
            }]
          }
        },
        drilldowns2 = {
          'Bob': {
            name: 'Sweet',
            color: '#50B432',
            data: [{
              name: data.clus[0]['top_level'][0].name,
              y: data.clus[0]['top_level'][0].amount.sweet,
              drilldown: true
            }]
          },
          'Andy': {
            name: 'Sweet',
            color: '#50B432',
            data: [{
              name: data.clus[0]['top_level'][0]['low_level'][0].name,
              y: data.clus[0]['top_level'][0]['low_level'][0].amount.sweet,
              drilldown: true
            }]
          }
        },
        series = drilldowns[e.point.name],
        series2 = drilldowns2[e.point.name];
      chart.addSingleSeriesAsDrilldown(e.point, series);
      chart.addSingleSeriesAsDrilldown(e.point, series2);
      chart.applyDrilldown();

    }
  }
}

演示:https://jsfiddle.net/BlackLabel/pk36xrb0/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67493106

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档