yasii92
yasii92

Reputation: 89

Highcharts Line Chart Drill down into multiple series

I have a Highcharts chart in my application, it is a line graph showing the number of employees at each department for several months over several years. When user click on that series it should drill down into another line chart which shows the headcount of two sub departments of Department A which are Department A1 and Department A2. I tried adding as two series under drill down, it seems not working. What is I'm missing here.

following is a sample code,

    $(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/

Upvotes: 0

Views: 534

Answers (1)

ppotaczek
ppotaczek

Reputation: 39069

Default Highcharts drilldown does not allow multiple series to be displayed, but you can easy create own drilldown behavior:

        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();
                }
            }
        }

Live demo: http://jsfiddle.net/BlackLabel/da1vuj26/

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

Upvotes: 1

Related Questions