2015-01-04 87 views
0

我在顯示基本列高圖時遇到問題。我的JSON看起來線以下:highcharts series data [] not populating/displayed

[ 
{ 
    "name":"Target Assigned", 
    "data":["100000","100000","100000","100000","100000","100000","100000"] 
}, 

{ 
    "name":"Target achieved", 
    "data":["75000","80000","80000","75000","85000","90000","65000"] 
} 
] 

我想要的「數據」被設置爲序列數據,爲了這個,我寫了下面的代碼,但它不顯示任何內容,

<script>$(document).ready(function() { 

var options = { 
     chart: { 
      renderTo: 'container', 
      type: 'column', 
      marginRight: 130, 
      marginBottom: 70 
     }, 
    title: { 
     text: 'Monthly Target Tracker' 
    }, 
    subtitle: { 
     text: 'Source: Database' 
    }, 
    xAxis: { 
     categories: [ 
      'Jan', 
      'Feb', 
      'Mar', 
      'Apr', 
      'May', 
      'Jun', 
      'Jul', 
      'Aug', 
      'Sep', 
      'Oct', 
      'Nov', 
      'Dec' 
     ] 
    }, 
    yAxis: { 
     min: 0, 
     tickInterval: 5, 
     title: { 
      text: 'Rupees (Lakhs)' 
     } 
    }, 
    tooltip: { 
     headerFormat: '<span style="font-size:10px">{point.key}</span><table>', 
     pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' + 
      '<td style="padding:0"><b>{point.y:.1f} Lakh</b></td></tr>', 
     footerFormat: '</table>', 
     shared: true, 
     useHTML: true 
    }, 
    plotOptions: { 
     column: { 
      pointPadding: 0.2, 
      borderWidth: 0 
     } 
    }, 
    series: [{name:'' , data: []},{name:'' , data: []}] 
} 

    $.getJSON("tracktarget.json", function(json) { 
     //alert(1); 
     // var jp=JSON.parse(json); 

     options.series[0].name= json[0].name; 
     options.series[0].data= [JSON.parse(json[0].data[0])]; 
     options.series[1].name= json[1].name; 
     options.series[1].data= [JSON.parse(json[1].data[0])]; 

     chart = new Highcharts.Chart(options); 


}); 
}); 
</script> 

驗證碼將series元素的「name:」設置爲我的json中的「name」值,但不設置數據數組值。

任何幫助將不勝感激。

+0

嗨,你可以請共享這個代碼的JS小提琴嗎?人們會幫助你更容易。 – 2015-01-04 12:51:03

回答

1

檢查控制檯是否有錯誤。在你的情況給你:

Uncaught Highcharts error #19: www.highcharts.com/errors/19 

太多蜱

當您嘗試太多蜱適用於軸發生此錯誤, 特別是當你比軸像素長度增加更多的蜱。在 實踐中,如此密集地添加刻度以致它們不能相互區分是沒有意義的。導致錯誤的一個原因可能是 您設置的tickInterval對於數據值 範圍來說太小。一般來說,tickPixelInterval是一個更好的選擇,因爲它將自動處理此問題 。另一種情況是,如果你嘗試設置 類別上的日期時間軸線,這將導致Highcharts試圖 自1970年以來

果然,您已設置tickInterval: 5,這意味着畫上每毫秒以添加一個刻度每5分鐘打一個yaxis將超過100,000!

如果你註釋掉你的代碼工作的那一行。雖然我很困惑這條線:

options.series[0].data= [JSON.parse(json[0].data[0])]; 

這意味着你只是將系列設置爲第一個數據點。我會假設你想要整個數據系列。 你有另外一個問題:

"data":["100000","100000","100000","100000","100000","100000","100000"] 

這些數字字符串(這就是爲什麼你有一個奇怪JSON.parse強迫他們一個號碼)。真的,你應該修復你的json返回一個數組數字而不是字符串。