Highcharts remove()不一致

时间:2011-11-21 21:12:25

标签: highcharts

我有一个高图,我只是想从中删除一个栏。听起来很简单,但remove()方法的工作方式也不同,具体取决于我访问的数据点。

像...一样的东西。

chart.series[0].data[0].remove();

......效果很好。删除栏和与栏关联的类别。现在一个小小的变化:

chart.series[0].data[1].remove(); 

并且在删除栏时,类别不是。尝试修改类别并使用setCategory并不能缓解这个问题。

请参阅:http://jsfiddle.net/FxY63/2/

我需要施展什么样的魔法才能按下“删除点2”来正确清理类别数组并在y轴上留下正确数量的抽动?

1 个答案:

答案 0 :(得分:2)

这似乎是我从搜索中得出的唯一解决方案。将类别和数据存储到数组中,并根据要删除的索引将数据/类别拼接出数组,并将类别/数据重新设置为图表,使其重新绘制新数据。

小提琴演示:http://jsfiddle.net/3dcbY/

var categories = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
var data = [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4];

// button handler
$('#button1').click(function() {
    var series = chart.series[0];
    if (series.data.length) {
        categories.splice(0,1);
        data.splice(0,1);

        series.setData(data);
        chart.xAxis[0].setCategories(categories);
    }
});

// button handler
$('#button2').click(function() {
    var series = chart.series[0];
    if (series.data.length) {
        categories.splice(1,1);
        data.splice(1,1);

        series.setData(data);
        chart.xAxis[0].setCategories(categories);
    }
});