我对Highstock很新,遇到了问题。我想要做的是以下内容。 在页面加载时,我使用下面的代码添加14个图表(删除了一些细节以使代码保持最小)。这些图表的数据由ajax通过json调用检索。经过x秒后,它再次检查json,然后我只想添加最新的点(这个json文件正在更新中)。
我一直在玩这个并重建这几天,但是我无法让它运行起来。第一次很棒。它获取所有数据并绘制所有图表。在x秒之后,它重新加载json并获取所有新数据,但它会删除整个图表并重新绘制它。这是正确的,因为这就是我要告诉它的事情。但只是因为我似乎无法访问series []来使用AddPoint。有什么想法吗?
snapshotGraphConfig: function (renderContainer, data) {
var currentTime = new Date(),
month = addDecimal(currentTime.getMonth() + 1),
day = addDecimal(currentTime.getDate()),
year = currentTime.getFullYear(),
today = month + "/" + day + "/" + year + ' 22:00:00',
config = {};
config.chart = {
renderTo: renderContainer,
backgroundColor: 'rgba(255, 255, 255, 0)',
};
config.series = [{
color: '#3599d0',
data : data,
tooltip: {
valueDecimals: 2
}
}];
config.xAxis = {
...
};
config.yAxis = {
...
};
return config;
},
setSnapshotGraph: function (index, val) {
var chartDiv = 'graph' + index,
chartData = val.GraphQuotes;
switch (chartData === null) {
case true:
$('#' + chartDiv).parent().addClass('loader');
break;
case false:
//If has loader, remove loader
if ($('#' + chartDiv).parent().hasClass('loader')) {
$('#' + chartDiv).parent().removeClass('loader');
}
//Do not add entire data to graph when it's already there
if (chartsArr.length >= 14) {
//chartsArr[index].series[0].remove(true);
//chartsArr[index].series[0].addPoint(newPoint, true, true);
} else {
chartsArr.push(new Highcharts.StockChart(markteApp.snapshotGraphConfig(chartDiv, chartData)));
chartsArr[index].setSize(
$('#' + chartDiv).width(),
$('#' + chartDiv).height(),
false
);
}
break;
}
}