2013-03-03 7 views
5

Ho avuto un problema nell'aggiungere serie dinamicamente con highstock. Per fare questo, sto usando la funzione chart.addSeries. La prima serie dovrebbe anche essere aggiunta dinamicamente tramite i dati provenienti da un servizio web. Il mio problema è nella prima vista del mio grafico. Voglio dire quando il grafico viene mostrato per primo, la barra di scorrimento non viene visualizzata correttamente, ma quando faccio clic sull'area ZOOM (1,3,6 mese - annuale - anno) appare la barra di scorrimento.Dynamic figure addSeries highcharts

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

anche sto dati di impostazione alla posizione del navigatore separatamente (inorder di avere dati sui asseX correttamente) e la proprietà serie è vuota (in un primo momento non ho alcuna serie) - Il problema è qui (vuoto serie)

Ho visto un sacco di esempi con addSeries ad altre serie, ma non ho visto come la prima serie.

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

Ho cercato molto, ma mi aspettavo qualcosa trovare un buon solution.Please aiutami ...

Grazie

+0

ci mostrano un po 'di demo, come riprodurre questo problema. –

+0

per esempio come questo http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/stock/members/chart-addseries/ ma la differenza è che la mia serie è vuota all'inizio e la prima serie viene applicata dinamicamente come tutte le altre serie, nel riferimento ad API di addSeries è stato affermato che la ** serie di base ** con ** navigatore abilitato ** non può essere aggiunta dinamicamente. –

+0

Un'altra cosa: posso usare più serie per raggiungere il mio obiettivo ma volevo farlo con addSeries per avere un codice chiaro ... –

risposta

4

Il problema è con pulsante selezionato nel selettore di gamma. Forzi Highstock per impostare gli estremi sui dati vuoti, quindi genererà un errore. Ciò che si può è quello di impostare direttamente extremes dopo l'aggiunta dei dati, si veda:

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 

esempio dal vivo: http://jsfiddle.net/vqa2r/

+0

Grazie Pawel, questo esempio è stato fantastico! –