How to hide/show a column in a basic column graph of highcharts?

前端 未结 2 875
梦如初夏
梦如初夏 2020-12-04 03:25

I\'m trying to show/hide a column (with all the associated points) in a graph of highcharts.

For instance, consider following graph: jsfiddle.

I want the use

2条回答
  •  广开言路
    2020-12-04 04:06

    Here is the solution from Daker, with the jsfiddle.

    html

    javascript

    var point = {
    x: null,
    y: null
    };
    
    var chart = new Highcharts.Chart({
    
    chart: {
        renderTo: 'container'
    },
    
    xAxis: {
        categories: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
    },
    
    series: [{
        type: 'column',
        name: 'third',
        data: [95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1],
    }]
    });
    $('#b4').click(function () {
    var no = 2; //third element
    // removed march, hoping we'd only show 11 months...
    chart.xAxis[0].setCategories(['Jan', 'Feb', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'], false);
    var data = [];
    for (i = 0; i < chart.series[0].data.length; i++) {
        if (i < no) {
            data.push([chart.series[0].data[i].x, chart.series[0].data[i].y]);
        } else if (i === no) {
            point.x = chart.series[0].data[i].x;
            point.y = chart.series[0].data[i].y;
        } else if (i > no) {
            data.push([chart.series[0].data[i].x - 1, chart.series[0].data[i].y]);
        }
    }
    chart.series[0].setData(data);
    });
    
    $('#b5').click(function () {
    var no = 2; //third element
    var data = [];
    for (i = 0; i < chart.series[0].data.length; i++) {
        if (i < no) {
            data.push([chart.series[0].data[i].x, chart.series[0].data[i].y]);
        } else if (i === no) {
            data.push([point.x, point.y]);
            data.push([chart.series[0].data[i].x + 1, chart.series[0].data[i].y]);
        } else if (i > no) {
            data.push([chart.series[0].data[i].x + 1, chart.series[0].data[i].y]);
        }
    }
    chart.xAxis[0].setCategories(['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']);
    chart.series[0].setData(data);
    });
    

提交回复
热议问题