highcharts系列数据[]没有填充/显示

时间:2015-01-04 11:06:37

标签: json highcharts

我在显示基本列高清时遇到问题。我的json看起来如下:

[
{
    "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>

此代码设置&#34;名称:&#34;系列元素的名称&#34;名称&#34;我的json中的值,但没有设置数据数组值。

任何帮助都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

检查控制台是否有错误。在你的情况下,你得到:

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

太多滴答

     

当您尝试对轴应用太多刻度时会发生此错误,   特别是当您添加比轴像素长度更多的刻度时。在   实践中,添加如此密集的蜱是没有意义的   无法彼此区分。错误的一个原因可能是   您设置的tickInterval对于数据值来说太小了   范围。通常,tickPixelInterval是一个更好的选择,因为它会   自动处理。另一种情况是你尝试设置   日期时间轴上的类别,这将导致Highcharts尝试   自1970年以来每毫秒添加一个刻度。

果然,你设置了tickInterval: 5,这意味着在yaxis上每隔5个勾选一次,超过100,000!

如果你注释掉你的代码就行了。虽然我对这条线很困惑:

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

这意味着您只将系列设置为第一个数据点。我原以为你想要整个数据系列。 但是你还有另外一个问题:

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

这些数字是字符串(这就是为什么你有奇怪的JSON.parse将它们强制转换为数字)。真的,你应该修复你的json以返回数组而不是字符串。