1

我在网站上有一个渲染的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 function after some time
emptyChart(chart);

我在 Firebug 控制台或其他地方也没有收到任何错误,只是没有任何反应......

4

5 回答 5

4

一个干净的方法来做到这一点:

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

如果您希望轴也消失,请使用“showEmpty: false”选项(检查xAxis.showEmpty

于 2013-01-28T12:15:27.620 回答
2

我猜,你想要这样的东西,

chart.series[0].data = [];
chart.redraw();
于 2012-06-19T22:00:51.267 回答
2

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

function emptyChart(chart) {
    chart = new Highcharts.Chart(/* chartOptions */);
}
于 2012-06-19T22:05:55.613 回答
1

您也可以使用 setData([])

http://api.highcharts.com/highcharts#Series.setData()

于 2013-08-16T08:48:02.607 回答
1

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

于 2012-06-19T21:49:04.560 回答