2017-02-22 23 views
3

инициализирует highchart с датой и значением, как это:HightChart установить новые данные

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 date, new data и new label для диаграммы?

ответ

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 = []; 
    } 
}) 
+0

Как можно установить имя метки? –

+1

Я нашел решение, 'HighChart.legend.allItems [0] .update ({name: i});' –

+0

Я просто написал xD Рад, что вы нашли его :-) –