2015-01-04 40 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返回一个数组数字而不是字符串。