【问题标题】:Highcharts Line Chart Drill down into multiple seriesHighcharts 折线图深入到多个系列
【发布时间】:2018-09-17 13:31:50
【问题描述】:

我的应用程序中有一个 Highcharts 图表,它是一个折线图,显示了每个部门在几年内几个月的员工人数。当用户单击该系列时,它应该向下钻取另一个折线图,该折线图显示了部门 A 的两个子部门的人数,即部门 A1 和部门 A2。我尝试在向下钻取下添加两个系列,它似乎不起作用。我在这里缺少什么。

以下是示例代码,

    $(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,
            }
          ]
        },
        {
          "name": 'Headcount',
          "id": 'levelA2,
          "data": [{
              "name": "Month1",
              "y": 1,
            },
            {
              "name": "Month2",
              "y": 2,
            },
            {
              "name": "Month3",
              "y": 3,
            },
            {
              "name": "Month4",
              "y": 4,
            },
            {
              "name": "Month5",
              "y": 5,
            },
            {
              "name": "Month6",
              "y":6,
            },
            {
              "name": "Month7",
              "y": 7,
            },
            {
              "name": "Month8",
              "y": 8,
            },
            {
              "name": "Month9",
              "y": 9,
            },
            {
              "name": "Month10",
              "y": 10,
            },
            {
              "name": "Month11",
              "y": 11,
            },
            {
              "name": "Month12",
              "y": 12,
            },
            {
              "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'
      },
    }],
  });
});

http://jsfiddle.net/yasirunilan/qh7zg5kn/4/

【问题讨论】:

    标签: javascript charts highcharts


    【解决方案1】:

    默认的 Highcharts 下钻不允许显示多个系列,但您可以轻松创建自己的下钻行为:

            events: {
                drilldown: function(e) {
                    var drilldownseries = [{
                            "name": 'Headcount',
                            "id": 'levelA2',
                            "data": [...]
                        },
                        {
                            "name": 'Headcount',
                            "id": 'levelA2',
                            "data": [...]
                        }
                    ]
    
                    if (!e.seriesOptions) {
                        chart.addSingleSeriesAsDrilldown(e.point, drilldownseries[0]);
                        chart.addSingleSeriesAsDrilldown(e.point, drilldownseries[1]);
                        chart.applyDrilldown();
                    }
                }
            }
    

    现场演示:http://jsfiddle.net/BlackLabel/da1vuj26/

    API 参考:https://www.highcharts.com/docs/chart-concepts/drilldown

    【讨论】:

    • 但是,如果第二级钻取到具有多个系列的另一级烧烤,我们不能这样做,对吧?
    猜你喜欢
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多