2013-03-03 10 views
5

Miałem problem z dynamicznym dodawaniem serii do highstock. Aby to zrobić, używam funkcji chart.addSeries. Pierwsza seria powinna również zostać dodana dynamicznie za pośrednictwem danych pochodzących z usługi internetowej. Mój problem jest w pierwszym widoku mojego wykresu. Chodzi mi o to, że po pierwszym wyświetleniu wykresu pasek przewijania nie jest wyświetlany poprawnie, ale po kliknięciu obszaru ZOOM (1,3,6 miesiąca - rocznie - ytd) pojawia się pasek przewijania.Dynamicznie addSeries highcharts

chart.addSeries({ 
       name: name, 
       data: data, 
       type: 'spline' 
      }); 

też mam ustawienie danych w Navigator oddzielnie (Inorder mieć dane dotyczące OśX prawidłowo) i własnością seria jest pusta (na początku nie mam żadnej serii) - Problemem jest tutaj (pusty series)

Widziałem wiele przykładów z dodatkami do innych serii, ale nie widziałem ich jako pierwszej serii.

var navigator = chart.get('navigator'); 
      navigator.setData(data); 

Szukałem dużo, ale ja could'nt znaleźć dobry solution.Please mi pomóc ...

Dziękuję

+0

Pokaż nam demo, jak odtworzyć ten problem. –

+0

na przykład takie jak ten http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/stock/members/chart-addseries/, ale różnica polega na tym, że moja seria jest początkowo pusta, a pierwsza seria jest stosowana dynamicznie, podobnie jak wszystkie inne serie, w apsizerze addSeries api powiedziano, że ** seria podstawowa ** z ** włączonym nawigatorem ** nie może być dodana dynamicznie. –

+0

Kolejna rzecz: mogę użyć wielu serii, aby osiągnąć mój cel, ale chciałem zrobić to za pomocą AddSeries, aby mieć lekki kod ... –

Odpowiedz

4

Problem jest z wybranego przycisku wybieraka zakresów. Zmuszasz Highstock do ustawienia ekstremów na pustych danych, więc spowoduje to błąd. Co można na to ustawienie bezpośrednio extremalne po dane są dodawane patrz:

chart.addSeries({ 
     name: 'ADBE', 
     data: ADBE 
    }, false); 
    var nav = chart.get('navigator'); 
    nav.setData(ADBE); 
    chart.xAxis[0].setExtremes(); //reset or set extremes to get navigator and scrollbar 

żywo przykład: http://jsfiddle.net/vqa2r/

+0

Dziękuję Pawlu, ten przykład był świetny! –