Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在highcharts中动态添加系列_Javascript_Jquery_Highcharts - Fatal编程技术网

Javascript 在highcharts中动态添加系列

Javascript 在highcharts中动态添加系列,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我可以在图表中添加系列和添加点,但我在初始化后添加的系列,即volvo,没有在其点之间绘制线。有什么问题吗 还有没有其他方法可以在没有for循环的情况下比较数组和添加点?因为我一次可以得到数百万个序列,我不想在数组上循环检查它是否存在。那么,有没有什么有效的方法可以找到一个列表是否已经存在,如果已经存在,它的索引是什么 下面是它的提琴:www.jsfiddle.net/2jYLz/这与您在添加新系列时启用了addPoint中的移位有关。换言之,在意甲联赛结束时,去掉第一个点,增加新的点。因此,当

我可以在图表中添加系列和添加点,但我在初始化后添加的系列,即volvo,没有在其点之间绘制线。有什么问题吗

还有没有其他方法可以在没有for循环的情况下比较数组和添加点?因为我一次可以得到数百万个序列,我不想在数组上循环检查它是否存在。那么,有没有什么有效的方法可以找到一个列表是否已经存在,如果已经存在,它的索引是什么


下面是它的提琴:www.jsfiddle.net/2jYLz/

这与您在添加新系列时启用了addPoint中的移位有关。换言之,在意甲联赛结束时,去掉第一个点,增加新的点。因此,当你有一点,它导致了你的情况。因此,您需要禁用Shipping,当series.data的长度达到10点时,应启用换档

(function($){
  $(function () {
    $(document).ready(function() {
      Highcharts.setOptions({
        global: {
          useUTC: false
        }
      });
      var i=0;
      var chart = new Highcharts.Chart({
        chart: {
          type: 'spline',
          renderTo: 'container',
          animation: Highcharts.svg, // don't animate in old IE
          marginRight: 10,
          events: {
            load: function() {
              // set up the updating of the chart each second
              var series = this.series[0];
              setInterval(function() {
                var Name = new Array();
                Name[0] = "Random data";
                Name[1] = "Volvo";
                var length=chart.series.length;
                var flag=0;
                var index=0;
                var x = (new Date()).getTime(), // current time
                y = Math.random();
                for (var k=0;k<Name.length;k++) {
                  for(var j=0;j<chart.series.length;j++) {
                    if(chart.series[j].name==Name[k]) {
                      flag=1;
                      index=j;
                      x = (new Date()).getTime();
                      y = Math.random();
                      break;
                    }
                  }
                  if(flag==1) {
                    chart.series[index].addPoint([x, y], true, true);
                    flag=0;
                  } else {
                    chart.addSeries({name: '' + Name[k] + '', data: [] });
                    chart.series[length].addPoint([x, y+1], true);
                    length=length+1;
                  }
                }
              }, 1000);
            }
          }
        },
        title: {
          text: 'Live random data'
        },
        xAxis: {
          type: 'datetime',
          tickPixelInterval: 150
        },
        yAxis: {
          title: {
            text: 'Value'
          },
          plotLines: [{
            value: 0,
            width: 1,
            color: '#808080'
          }]
        },
        tooltip: {
          formatter: function() {
            return '<b>'+ this.series.name +'</b><br/>'+
              Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x) +'<br/>'+
              Highcharts.numberFormat(this.y, 2);
          }
        },
        legend: {
          enabled: false
        },
        exporting: {
          enabled: false
        },
        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++) {
              data.push({
                x: time + i * 1000,
                y: Math.random()
              });
            }
            return data;
          })()
        }]
      });
    });
  });
})(jQuery);