2016-01-30 91 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

@Akiki很好,不客气。 –