2012-06-19 19 views
1

У меня есть рендерная диаграмма Highcharts на веб-сайте, и мне нужно ее опорожнить через определенное время. Теперь я попробовал, что с таким кодом, но график не опустошить себя/ничего не меняется ...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 или где-то еще, просто ничего не происходит ...

ответ

2

У меня была эта проблема уже во второй раз, и теперь я, наконец, нашел простой, но в настоящее время только-работающее решение: Просто создайте новый пустой Highchart:

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

Просто предположите, но попробуйте изменить на chart.series = {};?

+0

Тогда я получаю эту ошибку (через консоль): 'а. series.push не является функцией 'и' chart.series' является массивом [], который содержит объекты. – Poru

2

Я думаю, вы хотите что-то вроде этого,

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

Я хочу очистить весь график :) Это также не имеет никакого эффекта. – Poru

2

чистый способ сделать это:

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

Если вы хотите, чтобы ось disappe ар, а также, использовать "showEmpty: ложный" вариант (проверка xAxis.showEmpty)

Смежные вопросы