Highcharts:不在getJSON上渲染

时间:2015-08-10 07:10:11

标签: javascript php jquery highcharts

我正在尝试使用php文件返回的动态数据渲染饼图(Semi Circle Donut)。

data returned by data.php:
echo json_encode($overview)

output: {"Apple":184,"Mango":105,"Oranges":30,"Grapes":17} (This list is dynamic)

以下是我在jQuery中所做的事情:

$(document).ready(function(){

$('#show').click(function(){
    var chart;
    var options = {
            chart: {
            renderTo: 'container',
            plotBackgroundColor: null,
            plotBorderWidth: 0,
            plotShadow: false
        },
        title: {
            text: 'Browser<br>shares<br>2015',
            align: 'center',
            verticalAlign: 'middle',
            y: 40
        },
        tooltip: {
            pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>'
        },
        plotOptions: {
            pie: {
                dataLabels: {
                    enabled: true,
                    distance: -50,
                    style: {
                        fontWeight: 'bold',
                        color: 'white',
                        textShadow: '0px 1px 2px black'
                    }
                },
                startAngle: -90,
                endAngle: 90,
                center: ['50%', '75%']
            }
        },
        series: [{
            type: 'pie',
            name: 'Browser share',
            innerSize: '50%',

        }]
    }; //var options ends here

    $.getJSON("data.php", function(json) {
        json =  JSON.stringify(json);

        options.series[0] = {};

        options.series[0].data = json[0]['json'];
        chart = new Highcharts.Chart(options);
     });

    });
});

我试图对此提出各种问题,但没有运气。请建议我缺少什么。

2 个答案:

答案 0 :(得分:1)

您的数据应该是数组而不是对象。因此,您需要实现这个数字:

["Apple":184,"Mango":105,"Oranges":30,"Grapes":17]

答案 1 :(得分:0)

您没有使用选项初始化highcharts。

$('#container').highcharts(options)