Javascript 多系列高股价动态图
我已经有一个实时实时实时图形与一个系列的工作。就像 这是我的js代码Javascript 多系列高股价动态图,javascript,jquery,ajax,highcharts,real-time,Javascript,Jquery,Ajax,Highcharts,Real Time,我已经有一个实时实时实时图形与一个系列的工作。就像 这是我的js代码 <script> var chart; function requestData() { $.ajax({ url: 'live-server-data.php', success: function(point) { var series = chart.series[0], shift = series.data.l
<script>
var chart;
function requestData() {
$.ajax({
url: 'live-server-data.php',
success: function(point) {
var series = chart.series[0],
shift = series.data.length > 20;
chart.series[0].addPoint(point, true, shift);
setTimeout(requestData, 1000);
},
cache: false
});
}
</script>
如何使js脚本图形不止一个系列?我的猜测是迭代传递的JSON数组并为每个系列添加点,但不知道如何在js、jquery、ajax或我必须使用的任何东西上实现它。您需要两件事:
1) 服务器应在该请求中返回更多信息,例如:
[ [1430687116000, 994], [1430687116000, 5], ... , [1430687116000, 11] ]
或更好的格式,只提供一次时间戳:
{
"timestamp": 1430687116000,
"points": [ 994, 5, ... , 11 ]
}
2) 现在只需更新所有系列:
$.ajax({
url: 'live-server-data.php',
success: function(points) {
var series = chart.series,
shift;
$.each(series, function(i, s) {
shift = s.data.length > 20;
s.addPoint(points[i], false, shift);
});
setTimeout(requestData, 1000);
chart.redraw();
},
cache: false
});
或者使用JSON的第二种格式:
$.ajax({
url: 'live-server-data.php',
success: function(points) {
var series = chart.series,
shift;
$.each(series, function(i, s) {
shift = s.data.length > 20;
s.addPoint([points.timestamp, points.data[i]], false, shift);
});
setTimeout(requestData, 1000);
chart.redraw();
},
cache: false
});
好的,我做了第一个选择,但是我仍然没有得到预期的结果,看看,这就是生成图表的原因。我错过了什么?这要看情况了。1) 是否要使用多个系列?如何区分
系列X
和系列Y
?2) 确保数据按x值升序排序(点数组中的第一项:[1430687116000,994]
->1430687116000
)。
$.ajax({
url: 'live-server-data.php',
success: function(points) {
var series = chart.series,
shift;
$.each(series, function(i, s) {
shift = s.data.length > 20;
s.addPoint([points.timestamp, points.data[i]], false, shift);
});
setTimeout(requestData, 1000);
chart.redraw();
},
cache: false
});