1

Webサイトにレンダリングされた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

A clean way to do this :

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

If you want your axis to disappear as well, use the "showEmpty: false" option (check xAxis.showEmpty )

于 2013-01-28T12:15:27.620 に答える
2

私はすでにこの問題を2回経験しましたが、ついに単純ですが現在は機能している解決策を見つけました。新しい空のHighchartを作成するだけです。

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

I guess, you want something like this,

chart.series[0].data = [];
chart.redraw();
于 2012-06-19T22:00:51.267 に答える
1

Just a guess, but try changing to chart.series = {};?

于 2012-06-19T21:49:04.560 に答える
1

You can also use setData([])

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

于 2013-08-16T08:48:02.607 に答える