Highcharts系列格式问题(AngularJs)

Highcharts series format Issue (AngularJs)

本文关键字:AngularJs 问题 系列 格式 Highcharts      更新时间:2023-09-26
$scope.chartSeries= [{"name":"Tokyo","data":["0"," 0.9"," 0.5"," 0.5"," 0.2"," 0.5"," 0.2"," 0.5"," 2.3"," 1.3"," 1.9"," 0.6"]},{"name":"New York","data":["-0.2"," 0.8"," 5.7"," 11.3"," 17.0"," 22.0"," 24.8"," 24.1"," 20.1"," 14.1"," 8.6"," 2.5"]},{"name":"Berlin","data":["-0.9"," 0.6"," 3.5"," 8.4"," 13.5"," 17.0"," 18.6"," 17.9"," 14.3"," 9.0"," 3.9"," 1.0"]},{"name":"London","data":["3.9"," 4.2"," 5.7"," 8.5"," 11.9"," 15.2"," 17.0"," 16.6"," 14.2"," 10.3"," 6.6"," 4.8"]}]

当我使用series: $scope.chartSeries时,我的图表无法运行。

但是当我硬编码时,也就是

series: [{
            name: 'Tokyo',
            data: [7.0, 6.9, 9.5, 14.5, 18.4, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6]
        }, {
            name: 'London',
            data: [3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8]
        }]

我的代码运行顺利。我错过了什么?我想使用series: $scope.chartSeries

Assiging数据
 var chartSeriesArray=[];
   $http.get(url + "?GraphId="+$scope.graph.GraphId)
       .success(function (response) {
                   for (var i = 0; i < response.records.length; i++)
                   {
                       chartSeriesArray.push({
                           "name": response.records[i].name,
                           "data": response.records[i].data.split(",")
                       });
                   }
                   console.log(JSON.stringify(chartSeriesArray));
                //chartSeriesArray=[{"name":"Tokyo","data":["0"," 0.9"," 0.5"," 0.5"," 0.2"," 0.5"," 0.2"," 0.5"," 2.3"," 1.3"," 1.9"," 0.6"]},{"name":"New York","data":["-0.2"," 0.8"," 5.7"," 11.3"," 17.0"," 22.0"," 24.8"," 24.1"," 20.1"," 14.1"," 8.6"," 2.5"]},{"name":"Berlin","data":["-0.9"," 0.6"," 3.5"," 8.4"," 13.5"," 17.0"," 18.6"," 17.9"," 14.3"," 9.0"," 3.9"," 1.0"]},{"name":"London","data":["3.9"," 4.2"," 5.7"," 8.5"," 11.9"," 15.2"," 17.0"," 16.6"," 14.2"," 10.3"," 6.6"," 4.8"]}] 

                   $scope.chartSeries = chartSeriesArray;
          }

您以错误的格式分配数据。这应该可以解决这个问题:

 for (var i = 0; i < response.records.length; i++)
               {
                   var cityData = 
                   {
                       name:response.records[i].name,
                       data:response.records[i].data.map(Number)
                   }
                   chartSeriesArray.push(cityData );
               }

也许问题是,你的数据是字符串的数组,它应该是一个数组的数字,所以你可能需要映射字符串s到数字:response.records[i].data.map(Number)

所有四个对象的第一个和最后一个数据条目都是错误的。

$scope.chartSeries[0].data[0] = [7.0
$scope.chartSeries[0].data[11] = 9.6]

要么从服务器端删除并使数据有效(首选方法),要么通过一些客户端技巧使数据有效