javascript - 从未知数量的点初始化 Highcharts 折线图

标签 javascript jquery angularjs web-services highcharts

我正在尝试使用 highcharts 中每 x 秒更新一次的折线图。理想情况下,我希望它使用一些特定数据进行初始化,并每 x 秒轮询一次 Web 服务,并进行相应更新。

目前,我只是尝试使用网络服务中的数据对其进行初始化,但遇到了一些麻烦。根据用户选择的选项,终点可能有一个数据点,也可能有 500 个数据点。我正在尝试设置图表的初始化,因此不会产生任何影响。

我现在可以从临时端点提取数据,该端点仅包含一个数据点用于测试目的:

[
  {
    "time": 1432040070,
    "packets": 12
  }
]

我可以在js中console.leg()这些值,它们按顺序出现,但是当我尝试将它们插入提供该系列的数据数组时,它们不再存在。我希望图表能够像默认情况下一样工作,一旦最初加载数据,就会开始间隔。

这是我用于 $http.get() 和设置系列的代码:

$http.get("https://api.myjson.com/bins/nodx").success(function(returnedData){
                      returnedData.forEach(function(i){
                        console.log(i.time);
                        console.log(i.packets);
                        data.push({
                            x: i.time,
                            y: i.packets
                        });
                      });
                    });
                    console.log(data);

我“插入”数组的数据的格式与我更改初始示例之前的格式相同,因此我不知道为什么它无法工作。和here is a plunker我正在做的事情。

最佳答案

我现在看不到你原来的平板电脑(我昨天看了一眼),但我建议在图表初始化后添加初始数据。

function initializeData() {
  $http.get("https://api.myjson.com/bins/nodx").success(function(returnedData){

    var newdata = returnedData || getMockedData();
    $scope.chart.series[0].setData(newdata);

    setInterval(updateData, 1000);
  });
}

function updateData() {
  var x = (new Date()).getTime(), // current time
    y = Math.random()*.5;
  $scope.chart.series[0].addPoint([x, y], true, true);
}

$scope.chart = new Highcharts.Chart({
        chart: {
         ...
          events: {
              load: initializeData
          }

你可以检查我的 plunker 中的工作示例(我昨天拿了一份你的副本)http://plnkr.co/edit/smkBEgiAtHBvxdulqMgb

关于javascript - 从未知数量的点初始化 Highcharts 折线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30327309/

相关文章:

javascript - 使用 mailto : won't fill subject field 发送电子邮件

javascript - 当用户取消选择 div 时停止代码运行

javascript - AngularJS-如何按对象的属性/属性进行过滤-forEach 不是函数

javascript - 如何将 Bootstrap 的关闭按钮添加到 ASP.NET Forms 中的 ValidationSummary?

javascript - 在不设置默认值的情况下在 Backbone 模型上声明变量

javascript - 如何在jquery中单击按钮时显示隐藏下一个div?

javascript - 正确地将 Jquery 代码集成到 mvc 核心项目中

java - 如何从 angularjs 和 CORS 支持将文件上传到 Jersey

javascript - 使用外部 ng-repeat 的对象属性过滤嵌套的 ng-repeat

javascript - 使用 Angular 和 Angular-Route 扩展动态标题