[英]Update two series on the same graph dynamically with HighCharts
var myChart = Highcharts.chart('containerX', {
chart: {
type: 'spline',
//animation: Highcharts.svg, // don't animate in old IE
marginRight: 10,
events: {
load: function () {
var socket = io.connect('http://' + document.domain + ':' + location.port + '/test');
var series = this.series[0];
socket.on('newnumber', function(msg) {
var x = (new Date()).getTime() // current time
var y = parseFloat(msg.number)
console.log(msg.number)
series.addPoint([x, y], true, true);
});
socket.on('newnumber2', function(msg2) {
var x = (new Date()).getTime() // current time
var y = parseFloat(msg2.number2)
console.log(msg2.number2)
series.addPoint([x, y], true, true);
});
}
},
},
...
series: [{
name: 'Random data',
data: (function () {
// generate an array of random data
var data = [],
time = (new Date()).getTime(),
i;
for (i = -19; i <= 0; i += 1) {
data.push({
x: time + i * 1000,
y: Math.random()
});
}
return data;
}())
}]
在代碼中,我同時通過 flask-socketio 接收到兩個不同的值。 msg.number
和msg.number2
我可以只用一個系列在圖表上正確顯示值,例如msg.number
,但我想在圖表中添加另一個系列,例如msg.number2
我應該如何修改代碼來實現這個目標?
您需要在初始配置中添加另一個系列:
series: [{
...
}, {
...
}]
並在load
事件中正確引用它:
events: {
load: function() {
...
var series1 = this.series[0];
var series2 = this.series[1];
socket.on('newnumber', function(msg) {
...
series1.addPoint([x, y], true, true);
});
socket.on('newnumber2', function(msg2) {
...
series2.addPoint([x, y], true, true);
});
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.