2016-01-30 4 views
1

мне нужно перебрать данные, возьмите его в переменной, а затем отправить его в HighchartsПередача данных в Highcharts

, но я не могу сделать это Может кто-нибудь помочь?

Вот мой код:

$.ajax({ 
    type: "POST", 
    url: "/", 
    data : { 'perfid': valueOne, 'hostname': $("#host").val(), 'iteration': valueThree}, 
    success: function(data) { 
    $('#img1').hide(); 

    var obj = data[$("#host").val()].iscsi_lif.result.sectoutput.sect; 

    for(var key in obj) { 

      var avg_latency = parseInt(obj[key].avg_latency); 
      i++; 
      console.log(avg_latency);   
    } 


    $('#graphcontainer2').highcharts({ 
    chart: { 
     type: 'column' 
    }, 
    title: { 
     text: 'Write Latencies' 
    }, 
    xAxis: { 
     type: 'category', 
     labels: { 
      rotation: -45, 
      style: { 
       fontSize: '13px', 
       fontFamily: 'Verdana, sans-serif' 
      } 
     } 
    }, 
    yAxis: { 
     min: 0, 
     title: { 
      text: 'Write Latencies(us)' 
     } 
    }, 
    legend: { 
     enabled: false 
    }, 
    tooltip: { 
     pointFormat: 'Write Latencies: <b>{point.y:.1f}%</b>' 
    }, 
    series: [{ 
     name: 'Write latency', 
     data: [ 
       ['Average Latency', parseInt(avg_latency)], 
       ], 
     dataLabels: { 
      enabled: true, 
      rotation: -90, 
      color: '#FFFFFF', 
      align: 'right', 
      format: '{point.y:.1f}', // one decimal 
      y: 10, // 10 pixels down from the top 
      style: { 
       fontSize: '13px', 
       fontFamily: 'Verdana, sans-serif' 
      } 
     } 
    }] 
}); 

Вот скриншот консольных значений avg_latency: enter image description here

Я хочу, чтобы отобразить график всех avg_latencies. Может кто-нибудь указать, что я делаю неправильно в этом коде. Спасибо.

+0

Вы должны передать массив данных для данных highchart, но это кажется, что вы передаете одиночные данные. –

+0

@VahidMsm Я попробовал массив, но он отображается, но заметка отображается после попытки передать массив, можете ли вы разместить jsFiddle для этого? TIA – Akki

ответ

1

Вы должны передать список ваших данных в словаре к серии highchart, попробуйте следующее:

$.ajax({ 
    type: "POST", 
    url: "/", 
    data : { 'perfid': valueOne, 'hostname': $("#host").val(), 'iteration': valueThree}, 
    success: function(data) { 
    $('#img1').hide(); 

    var obj = data[$("#host").val()].iscsi_lif.result.sectoutput.sect; 
    var my_data_list = []; 
    for(var key in obj) { 
      var avg_latency = parseInt(obj[key].avg_latency); 
      my_data_list.push({name: 'Average Latency', y: parseInt(avg_latency)}); 
      console.log(avg_latency);   
    } 


    $('#graphcontainer2').highcharts({ 
    chart: { 
     type: 'column' 
    }, 
    title: { 
     text: 'Write Latencies' 
    }, 
    xAxis: { 
     type: 'category', 
     labels: { 
      rotation: -45, 
      style: { 
       fontSize: '13px', 
       fontFamily: 'Verdana, sans-serif' 
      } 
     } 
    }, 
    yAxis: { 
     min: 0, 
     title: { 
      text: 'Write Latencies(us)' 
     } 
    }, 
    legend: { 
     enabled: false 
    }, 
    tooltip: { 
     pointFormat: 'Write Latencies: <b>{point.y:.1f}%</b>' 
    }, 
    series: [{ 
     name: 'Write latency', 
     data: my_data_list, 
     dataLabels: { 
      enabled: true, 
      rotation: -90, 
      color: '#FFFFFF', 
      align: 'right', 
      format: '{point.y:.1f}', // one decimal 
      y: 10, // 10 pixels down from the top 
      style: { 
       fontSize: '13px', 
       fontFamily: 'Verdana, sans-serif' 
      } 
     } 
    }] 
}); 
+0

Теперь он работает :) Спасибо, я понял, как передавать данные как серии. Вы сделали одного человека счастливым сегодня @VahidMsm – Akki

+0

@Akki Отлично, пожалуйста. –

Смежные вопросы