javascript - Highcharts 折线图向下钻取无法正常工作

标签 javascript charts highcharts

在我的应用程序中,我有一个折线图,显示了几年来多个部门的员 worker 数变化。然后,当我单击一个数据系列(例如:部门 A)时,我需要显示所选部门的向下钻取。我已将钻取代码和钻取数据添加到图表定义中。似乎无法正常工作。我找不到这里出了什么问题。有没有解决这个问题的方法。示例代码如下。

http://jsfiddle.net/yasirunilan/qja2s3rb/9/

 var chart = new Highcharts.Chart({
    chart: {
      renderTo: "container-main-bar",
      type: "line"
    },
    title: {
      text: null
    },
    series: [{
      "name": "Department A",
      "data": [{
          "name": "Month1",
          "y": 27,
          "drilldown": "levelA2"
        },
        {
          "name": "Month2",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month3",
          "y": 22,
          "drilldown": "levelA2"
        },
        {
          "name": "Month4",
          "y": 26,
          "drilldown": "levelA2"
        },
        {
          "name": "Month5",
          "y": 21,
          "drilldown": "levelA2"
        },
        {
          "name": "Month6",
          "y": 22,
          "drilldown": "levelA2"
        },
        {
          "name": "Month7",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month8",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month9",
          "y": 21,
          "drilldown": "levelA2"
        },
        {
          "name": "Month10",
          "y": 20,
          "drilldown": "levelA2"
        },
        {
          "name": "Month11",
          "y": 22,
          "drilldown": "levelA2"
        },
        {
          "name": "Month12",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month13",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month14",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month15",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month16",
          "y": 26,
          "drilldown": "levelA2"
        },
        {
          "name": "Month17",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month18",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month19",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month20",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month21",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month22",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month23",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month24",
          "y": 25,
          "drilldown": "levelA2"
        }
      ],
      "drilldown": {
        "series": [{
          "name": 'Headcount',
          "id": 'levelA2',
          "data": [{
              "name": "Month1",
              "y": 10,
            },
            {
              "name": "Month2",
              "y": 12,
            },
            {
              "name": "Month3",
              "y": 11,
            },
            {
              "name": "Month4",
              "y": 10,
            },
            {
              "name": "Month5",
              "y": 9,
            },
            {
              "name": "Month6",
              "y": 8,
            },
            {
              "name": "Month7",
              "y": 10,
            },
            {
              "name": "Month8",
              "y": 12,
            },
            {
              "name": "Month9",
              "y": 11,
            },
            {
              "name": "Month10",
              "y": 13,
            },
            {
              "name": "Month11",
              "y": 14,
            },
            {
              "name": "Month12",
              "y": 10,
            },
            {
              "name": "Month13",
              "y": 9,
            },
            {
              "name": "Month14",
              "y": 8,
            },
            {
              "name": "Month15",
              "y": 11,
            },
            {
              "name": "Month16",
              "y": 10,
            },
            {
              "name": "Month17",
              "y": 9,
            },
            {
              "name": "Month18",
              "y": 10,
            },
            {
              "name": "Month19",
              "y": 11,
            },
            {
              "name": "Month20",
              "y": 12,
            },
            {
              "name": "Month21",
              "y": 13,
            },
            {
              "name": "Month22",
              "y": 10,
            },
            {
              "name": "Month23",
              "y": 11,
            },
            {
              "name": "Month24",
              "y": 12,
            }
          ]
        }]
      }
    }, ],
    xAxis: {
      categories: [{
          "name": "2013",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2014",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2015",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2016",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2017",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2018",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        }
      ]
    },
    yAxis: [{ // Primary yAxis
      title: {
        text: 'No. of Employees'
      },
    }],
  });

最佳答案

首先你必须添加drilldown.js在你的HTML

<script src="https://code.highcharts.com/modules/drilldown.js"></script>

drilldown在输入 JSON 对象中输入了错误的对象。它应该来自 series 。以下是正确的格式。请查看代码片段。

$(function() {
  var chart = new Highcharts.Chart({
    chart: {
      renderTo: "container-main-bar",
      type: "line"
    },
    title: {
      text: null
    },
    series: [{
      "name": "Department A",
      "data": [{
          "name": "Month1",
          "y": 27,
          "drilldown": "levelA2"
        },
        {
          "name": "Month2",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month3",
          "y": 22,
          "drilldown": "levelA2"
        },
        {
          "name": "Month4",
          "y": 26,
          "drilldown": "levelA2"
        },
        {
          "name": "Month5",
          "y": 21,
          "drilldown": "levelA2"
        },
        {
          "name": "Month6",
          "y": 22,
          "drilldown": "levelA2"
        },
        {
          "name": "Month7",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month8",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month9",
          "y": 21,
          "drilldown": "levelA2"
        },
        {
          "name": "Month10",
          "y": 20,
          "drilldown": "levelA2"
        },
        {
          "name": "Month11",
          "y": 22,
          "drilldown": "levelA2"
        },
        {
          "name": "Month12",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month13",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month14",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month15",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month16",
          "y": 26,
          "drilldown": "levelA2"
        },
        {
          "name": "Month17",
          "y": 24,
          "drilldown": "levelA2"
        },
        {
          "name": "Month18",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month19",
          "y": 23,
          "drilldown": "levelA2"
        },
        {
          "name": "Month20",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month21",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month22",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month23",
          "y": 25,
          "drilldown": "levelA2"
        },
        {
          "name": "Month24",
          "y": 25,
          "drilldown": "levelA2"
        }
      ]
 } ],
 
      "drilldown": {
        "series": [{
          "name": 'Headcount',
          "id": 'levelA2',
          "data": [{
              "name": "Month1",
              "y": 10,
            },
            {
              "name": "Month2",
              "y": 12,
            },
            {
              "name": "Month3",
              "y": 11,
            },
            {
              "name": "Month4",
              "y": 10,
            },
            {
              "name": "Month5",
              "y": 9,
            },
            {
              "name": "Month6",
              "y": 8,
            },
            {
              "name": "Month7",
              "y": 10,
            },
            {
              "name": "Month8",
              "y": 12,
            },
            {
              "name": "Month9",
              "y": 11,
            },
            {
              "name": "Month10",
              "y": 13,
            },
            {
              "name": "Month11",
              "y": 14,
            },
            {
              "name": "Month12",
              "y": 10,
            },
            {
              "name": "Month13",
              "y": 9,
            },
            {
              "name": "Month14",
              "y": 8,
            },
            {
              "name": "Month15",
              "y": 11,
            },
            {
              "name": "Month16",
              "y": 10,
            },
            {
              "name": "Month17",
              "y": 9,
            },
            {
              "name": "Month18",
              "y": 10,
            },
            {
              "name": "Month19",
              "y": 11,
            },
            {
              "name": "Month20",
              "y": 12,
            },
            {
              "name": "Month21",
              "y": 13,
            },
            {
              "name": "Month22",
              "y": 10,
            },
            {
              "name": "Month23",
              "y": 11,
            },
            {
              "name": "Month24",
              "y": 12,
            }
          ]
        }]
      },
    
    xAxis: {
      categories: [{
          "name": "2013",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2014",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2015",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2016",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2017",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        },
        {
          "name": "2018",
          "categories": ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
        }
      ]
    },
    yAxis: [{ // Primary yAxis
      title: {
        text: 'No. of Employees'
      },
    }],
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<script src="http://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/drilldown.js"></script>
<script src="http://blacklabel.github.io/grouped_categories/grouped-categories.js"></script>
<div id="container-main-bar"></div>

关于javascript - Highcharts 折线图向下钻取无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52367054/

相关文章:

javascript - 为什么 highchart 无法识别我的日期?

javascript - 谷歌地图覆盖在特定缩放级别消失

javascript - Phonegap 地理定位 - 频率选项

javascript - 为什么代码中的 catch 语句没有捕获 async 函数中的错误?

javascript - JQuery 表单插件向 Node.js 发送空数据?

javascript - Chart.js 响应选项 - 图表未填充容器

r - 更改 chart.Correlation() 下对角线中的点字符

jquery - 使用 Previous、Next 控件在柱形图中分页?

python - 使用 Highcharts 的 Django Chart

javascript - 类型错误 : Cannot read property 'datasets' of undefined - Angular Chart