L'ajout d'une série dynamiquement avec HighCharts Graphiques Boursiers

J'ai le code suivant: http://jsfiddle.net/maniator/vTjW8/

var createChartTemplate = function() {
return {
chart: new Highcharts.StockChart({
chart: {
renderTo: 'container'
},
series: []
}),
addSeries: function(name) {
this.chart.addSeries({
name: name,
data: [],
id: Math.floor(Math.random()*1000)
});
},
addPoint: function(data, series) {
var seriesIndex = this.seriesExists(series);
if (!(seriesIndex === false)) {
this.chart.series[seriesIndex].addPoint(data, false);
}
this.chart.redraw();
},
seriesExists: function(series) {
var seriesIndex = false;
$.each(this.chart.series, function(index, item) {
if ($.trim(item.name) == $.trim(series)) {
seriesIndex = index;
return false;
}
});
return seriesIndex;
}
}
}
$(function() {
var data = usdeur.splice(0, 700);
var chart = createChartTemplate();
chart.addSeries("New Series");
for (var i = 0; i < data.length; i++) {
chart.addPoint(data[i], "New Series");
}
});

Il a l'erreur suivante dans la console:

Uncaught TypeError: Cannot read property 'options' undefined

Ce code fonctionne très bien si elle est normale highchart, mais pour quelque raison il ne fonctionne pas avec un HighStock graphique.

Comment puis-je faire en sorte qu'il fonctionne avec le type de graphique que j'ai besoin?


Mise à jour:

Je découvre une sorte de chemin autour de l'obtention de la 1ère série de manière dynamique, mais lorsque j'essaie d'ajouter une deuxième série a une erreur de:

Uncaught TypeError: Cannot read property 'piles' undefined

Violon: http://jsfiddle.net/maniator/V5WAJ/

  • vous n'avez donc jamais comprendre comment démarrer un highstock avec des données vides? Je suis confronté problème similaire, c'est à dire le besoin d'ajouter des données dynamiquement le tableau après le graphique a été créé.
  • J'avais besoin de futz avec le code.... :-\ très très hacky. En gros quand j'avais besoin d'une nouvelle série, j'ai recréé l'ensemble du graphique à nouveau avec de nouvelles séries de données.....
  • J'ai trouvé une solution pour mes besoins. Ne sais pas si cela s'applique à votre problème (et il est probablement trop tard), mais j'ai posté une réponse ci-dessous pour les autres.
InformationsquelleAutor Neal | 2011-10-06