2013-06-21 6 views
4

Je veux ajouter quelques séries (je reçois les données de série d'un webservice comme un tableau 3dim (et le renvoyer comme json) - Je ne sais pas le nombre de séries que je vais obtenir, donc je dois charger les données de la série dynamiquement).Highcharts ajouter des séries dynamiquement

javascript Je construis un objet: (comme dans cet exemple de highstock: http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/stock/demo/compare/)

seriesOptions[i] = { 
    name: namearray[i], 
    data: dataarray 
}; 

e.g. result: [Object { name="Series", data=[[1041375600000, 29,9]]}] 

J'ai essayé d'ajouter la série comme ceci:

$.each(seriesOptions, function (itemNo, item) { 
    chart.addSeries({       
     name: item.name, 
     data: item.data 
    }, false); 
}); 
chart.redraw(); 

Mais le tableau dessine la série un peu bizarre et ne convertit pas en horodatage à ce jour.
Y a-t-il des problèmes avec mes données de graphique provenant du service Web?

Voici mon code: http://jsfiddle.net/DGdaf/2/

Merci pour toute aide à ce jour.

EDIT
Il semble que le tableau ignoeres toutes les valeurs par défaut de valeur timeline/zoom. Je ne sais pas pourquoi il ne montre pas ces composants.
Le problème pourrait être que je dessine le graphique après l'initialisation?

chart = new Highcharts.Chart(options); 

Mais je dois le faire cause du chargement en série dynamique.

EDIT2
Je ne sais pas si je suis le chargement des données trop ou quelque chose. Je ne peux pas créer ma série dynamiquement.

for(i=0; i<seriesOptions.length; i++){ 
     chart.addSeries({       
      name: seriesOptions[i].name, 
      data: seriesOptions[i].data 
     }, true); 

    }; 
+0

Pourriez-vous ajouter à vos données d'échantillon jsFiddle? –

+0

exemples de données de la matrice 3dim et l'objet js: http://jsfiddle.net/eAu32/ – spyfx

+0

Voir ma réponse ci-dessous –

Répondre

4

Set pour votre axeY:

yAxis: { 
    type: 'datetime' 
} 

Voir fiddle

EDIT: Timeline/zoom http://jsfiddle.net/DGdaf/5/

Edit: Utiliser rappel pour ajouter d'autres séries, quand tableau est prêt . Cependant, pourquoi ne pas ajouter ces séries lorsque le graphique est créé?

chart = new Highcharts.Chart(options, function(ch) { 

     $.each(seriesOptions, function (itemNo, item) { 
      ch.addSeries({       
       name: item.name, 
       data: item.data 
      }, false); 

     }); 
     chart.redraw(); 
    }); 
+0

son aspect bizarre à partir d'ici: http://img823.imageshack.us/img823/2685/7y5l. jpg Je sais - que j'utilise plus de données que vous, mais idk pourquoi ma carte dessine des points sur la ligne – spyfx

+0

et il n'y a pas de valeur de timeline/zoom ainsi – spyfx

+0

Quel calendrier/zoom? Pourquoi pensez-vous que cela est mal interprété? –

Questions connexes