Javascript Highcharts-重新绘制空图表

Javascript Highcharts-重新绘制空图表,javascript,highcharts,Javascript,Highcharts,我有一个网站上的渲染图表,我需要在一段时间后清空它。现在我用这样的代码尝试了一下,但是图表本身没有清空/没有任何变化 var chart = new Highcharts.Chart({ // Chart settings }); // Some other JS function emptyChart(chart) { chart.series = []; chart.redraw(); } // Some code and a function executes this

我有一个网站上的渲染图表,我需要在一段时间后清空它。现在我用这样的代码尝试了一下,但是图表本身没有清空/没有任何变化

var chart = new Highcharts.Chart({
// Chart settings
});

// Some other JS
function emptyChart(chart) {
    chart.series = [];
    chart.redraw();
}

// Some code and a function executes this function after some time
emptyChart(chart);

我在Firebug控制台或其他地方也没有发现任何错误,只是什么也没发生…

只是猜测,但尝试更改为chart.series={}

只是猜测,但请尝试更改为chart.series={}

我想,你想要这样的东西

chart.series[0].data = [];
chart.redraw();

我猜你想要这样的东西

chart.series[0].data = [];
chart.redraw();

我已经第二次遇到这个问题,现在我终于找到了一个简单但目前唯一有效的解决方案:只需创建一个新的空Highchart:

function emptyChart(chart) {
    chart = new Highcharts.Chart(/* chartOptions */);
}

我已经第二次遇到这个问题,现在我终于找到了一个简单但目前唯一有效的解决方案:只需创建一个新的空Highchart:

function emptyChart(chart) {
    chart = new Highcharts.Chart(/* chartOptions */);
}

一种干净的方法:

function emptyChart(chart) {
    while(chart.series.length !=0) {
        chart.series[0].hide();
        chart.series[0].remove();
    }
}

如果您希望轴也消失,请使用showEmpty:false选项检查,以干净的方式执行此操作:

function emptyChart(chart) {
    while(chart.series.length !=0) {
        chart.series[0].hide();
        chart.series[0].remove();
    }
}

如果希望轴也消失,请使用showEmpty:false选项复选框

也可以使用setData[]


也可以使用setData[]


然后我通过控制台获得此错误:a.series.push不是函数,chart.series是包含对象的数组[]。然后我通过控制台获得此错误:a.series.push不是函数,chart.series是数组[]其中包含对象。我想清除整个图表:这也不起任何作用。我想清除整个图表:这也不起任何作用。