2017-01-10 1 views
0

У меня есть диаграмма высот с флагами, которые изначально правильно установлены.Неверная компоновка флагов после динамического набора данных по функции afterSetExtremes

Посмотреть на рисунке 1: данные enter image description here

графа по загрузке динамически, когда вертикальная полоса прокрутки изменяется. Единственное, что изменяет это данные серии с функцией

function afterSetExtremes(e) { 
    var new_data_to_be_loaded = getNewDataToBeLoaded(); 
    chart.series[0].setData(new_data_to_be_loaded); 
} 

новой серии данных загружены правильно, но флаги является incorreclty перестроены, SE на рисунке 2:

enter image description here

Итак, что не так в настройке, так как chart.series [0] .setData просто задает серию, а не предыдущие флаги?



Почти раствор:

Я обнаружил, что SetData (данные, ложные), установив анимация/перерисовывать ложь решить проблему неправильного позиционирования флага.

Взгляните на это: http://jsfiddle.net/b6b63nwy/10/

Но это было поднять еще одну проблему: серия подсказке не появится больше. Является ли это ошибкой с высокой загрузкой?

+0

http://jsfiddle.net/qfuevmqL/ На примере, флаги расположены правильно. Вы можете воссоздать проблему на jsfiddle? Как вы загружаете новые данные? – morganfree

+0

Я сделал это на jsfiddle http://jsfiddle.net/b6b63nwy/, это сработало. Я думаю, что есть что-то, связанное с перерисованием или анимацией, потому что это работает иногда. Иногда анимация новой серии обновляется, но флаги не обновляются по оси Y, но положение флажков оси X обновляется. Когда эта ошибка произойдет, если я немного изменю размер в окне браузера, флаги идут в нужное место. – felipe

+0

@morganfree, взгляните на это: http://jsfiddle.net/b6b63nwy/7/ highstocks просто ошибки, он, кажется, находится в бесконечном цикле, когда запускается событие afterSetExtremes. Если я уменьшу количество элементов, на графе не будет ошибок: http://jsfiddle.net/b6b63nwy/6/ – felipe

ответ

0

Ответ:

http://forum.highcharts.com/highstock-usage/bug-series-tooltip-doesn-t-render-when-use-series-setdata-t37593/

================================= =============================================

Если вы посмотрите на Series.setData в официальном API, вы обнаружите, что второй аргумент - это логическое свойство, которое указывает, перерисовывает ли диаграмма. Вместо setData попробуйте использовать функцию Series.update().

Справочник по API: http://api.highcharts.com/highcharts/Series.setData http://api.highcharts.com/highstock/Series.update