HightChart设置了新数据

时间:2017-02-22 08:46:06

标签: javascript highcharts

我用这样的日期和值初始化高图:

    series: [{
        name: 'Tokyo',
        data: 
        [
             [Date.parse("01/02/2017"),11],
             [Date.parse("02/02/2017"),22],
        ]

    },{
        name: 'Tehran',
        data: 
        [
             [Date.parse("01/02/2017"),33],
             [Date.parse("02/02/2017"),44],
        ]      
    }]
  

在上面的示例中,chartArray已成功添加到HighChart。

现在我想在图表中设置新数据,并使用HighChart.series[0].setData()方法执行此操作。

JS:

 $('#btnUpdate').('click', function(){
    $.post('/Reporst/GetReportsJson/', data, function (dataR) {
       var chartArray = []; //for chart value
       var dateArray = []; // for chart date, X Axis
       for (var i in dataR) {
          for (var ii in dataR[i].finalChart) {  
             dateArray.push(dataR[i].finalChart[ii].date1);
             chartArray.push(parseInt(dataR[i].finalChart[ii].value));
          }
       HighChart.series[i].setData(chartArray);      
       dateArray = []; chartArray = [];
   }
})

使用此代码我只将new data设置为图表,我的问题是:如何为图表设置new datenew datanew label

1 个答案:

答案 0 :(得分:1)

一系列数据由一个数组组成,该数组包含每个数据点,一个包含两个元素的数组,其中日期为第一个元素(在您的情况下),值为第二个,如您所见代码的第一部分。

data: 
[ // Data is an array
     [Date.parse("01/02/2017"),11], // Each point is an array too
     [Date.parse("02/02/2017"),22],
]

因此,当您填充chartArray以执行setData()时,它应该具有相同的格式,如下所示:

$('#btnUpdate').('click', function(){
    $.post('/Reporst/GetReportsJson/', data, function (dataR) {
       var chartArray = []; //for chart value
       for (var i in dataR) {
          for (var ii in dataR[i].finalChart) {  
             var date = dataR[i].finalChart[ii].date1;
             var value = parseInt(dataR[i].finalChart[ii].value);
             chartArray.push([Date.parse(date), value]); // One array with [date, value] per point, as stated above
          }
       }
       HighChart.series[i].setData(chartArray);      
       chartArray = [];
   }
})