如何在Highchart中的堆叠柱线图中向下钻取

时间:2017-04-21 06:26:11

标签: javascript jquery charts highcharts drilldown

我是使用Highchart的新手。我能够创建Stacked Col-line图表。现在我想创建它的钻取。我能够获得点击事件并在同一位置创建一个新图表,但使用它我无法钻回到上一个图表。所以我需要使用它的钻取属性。 这是我的图表代码。 HTML部分 -

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

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto">
</div>

现在是脚本部分

Highcharts.chart('container', {
chart: {
    zoomType: 'xy'
},
title: {
    text: 'Average Monthly Temperature and Rainfall in Tokyo'
},
subtitle: {
    text: 'Source: WorldClimate.com'
},
xAxis: [{
    categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
        'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
    crosshair: true
}],
yAxis: [{ // Primary yAxis
    labels: {
        format: '{value}°C',
        style: {
            color: Highcharts.getOptions().colors[1]
        }
    },
    title: {
        text: 'Temperature',
        style: {
            color: Highcharts.getOptions().colors[1]
        }
    }
}, { // Secondary yAxis
    title: {
        text: 'Rainfall',
        style: {
            color: Highcharts.getOptions().colors[0]
        }
    },
    labels: {
        format: '{value} mm',
        style: {
            color: Highcharts.getOptions().colors[0]
        }
    },
    opposite: true
}],
tooltip: {
    shared: true
},
plotOptions: {
    column: {
        stacking: 'normal',
        cursor: 'pointer'
    }
},
legend: {
    layout: 'vertical',
    align: 'left',
    x: 120,
    verticalAlign: 'top',
    y: 100,
    floating: true,
    backgroundColor: (Highcharts.theme && Highcharts.theme.legendBackgroundColor) || '#FFFFFF'
},
series: [{
    name: 'Rainfall',
    type: 'column',
    yAxis: 1,
    drilldown: true,
    data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4],
    tooltip: {
        valueSuffix: ' mm'
    }

},{
    name: 'Wind',
    type: 'column',
    yAxis: 1,
    drilldown: true,
    data: [25, 20, 30, 12, 14, 17, 13, 14, 21, 19, 25.6, 24.4],
    tooltip: {
        valueSuffix: ' mm'
    }

}, {
    name: 'Temperature',
    type: 'spline',
    drilldown: true,
    data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6],
    tooltip: {
        valueSuffix: '°C'
    }
  }]
});

1 个答案:

答案 0 :(得分:0)

如果您想深入到折线图,只需在options.series中设置类型而不是options.chart。

$(function() {

  // Create the chart
  $('#container').highcharts({
    title: {
      text: 'Basic drilldown'
    },
    xAxis: {
      type: 'category'
    },

    legend: {
      enabled: true
    },

    plotOptions: {
      series: {
        borderWidth: 0,
        dataLabels: {
          enabled: true,
          style: {
            color: 'white',
            textShadow: '0 0 2px black, 0 0 2px black'
          }
        },
        stacking: 'normal'
      }
    },

    series: [{
    	type: 'column',
      name: 'Things',
      data: [{
        name: 'Animals',
        y: 5,
        drilldown: 'animals'
      }, {
        name: 'Fruits',
        y: 2,
        drilldown: 'fruits'
      }, {
        name: 'Cars',
        y: 4,
        drilldown: 'cars'
      }]
    }, {
    	type: 'column',
      name: 'Things2',
      data: [{
        name: 'Animals',
        y: 1,
        drilldown: 'animals2'
      }, {
        name: 'Fruits',
        y: 5,
        drilldown: 'fruits2'
      }, {
        name: 'Cars',
        y: 2,
        drilldown: 'cars2'
      }]
    }],
    drilldown: {
      activeDataLabelStyle: {
        color: 'white',
        textShadow: '0 0 2px black, 0 0 2px black'
      },
      series: [{
        id: 'animals',
        name: 'Animals',
        data: [
          ['Cats', 4],
          ['Dogs', 2],
          ['Cows', 1],
          ['Sheep', 2],
          ['Pigs', 1]
        ]
      }, {
        id: 'fruits',
        name: 'Fruits',
        data: [
          ['Apples', 4],
          ['Oranges', 2]
        ]
      }, {
        id: 'cars',
        name: 'Cars',
        data: [
          ['Toyota', 4],
          ['Opel', 2],
          ['Volkswagen', 2]
        ]
      }, {
        id: 'animals2',
        name: 'Animals2',
        data: [
          ['Cats', 3],
          ['Dogs', 5],
          ['Cows', 6],
          ['Sheep', 2],
          ['Pigs', 2]
        ]
      }, {
        id: 'fruits2',
        name: 'Fruits2',
        data: [
          ['Apples', 1],
          ['Oranges', 5]
        ]
      }, {
        id: 'cars2',
        name: 'Cars2',
        data: [
          ['Toyota', 2],
          ['Opel', 3],
          ['Volkswagen', 2]
        ]
      }]
    }
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://github.highcharts.com/highcharts.js"></script>
<script src="http://github.highcharts.com/modules/drilldown.js"></script>

<div id="container" style="min-width: 310px; height: 400px; margin: 0 auto"></div>

实例:http://jsfiddle.net/wyos2saL/