javascript - 使用 HighCharts 动态更新同一图表上的两个系列

标签 javascript html flask highcharts socket.io

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.numbermsg.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);
    });
  }
}
<小时/>

现场演示: http://jsfiddle.net/BlackLabel/6m4e8x0y/4933/

关于javascript - 使用 HighCharts 动态更新同一图表上的两个系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60840222/

相关文章:

javascript - 从对象内的异步回调中调用函数

javascript - 在 JS 中拆分 Sprite Sheets/Chip Sets 的高性能方法是什么?

javascript - UTF8解码汉字

javascript - jQuery 动态更改数据属性后,如何读取/写入数据属性?

javascript - 在 Javascript 中获取选定文本

javascript - 仅当 flask 中的变量发生变化时才更新网站

python - 将来自 flask send_file(ajax 响应)的图像显示到图像标签中

javascript - 在框架集之外创建头标签

javascript - HTML5/Angular : How can you have an autocomplete list hold object values?

Python Flask 从像 render_template 这样的变量渲染文本