[object Object]中的Highcharts问题:饼图为0.0

时间:2014-05-01 12:18:51

标签: json highcharts

我是Highcharts和json的新手,我正在使用带有渐变填充的饼图。过去几天我一直面临着从php和mysql中提取json数据以使用Highchart库填充渐变填充饼图的问题。我已经尝试了StackOverflow和Google搜索的所有建议,虽然我无法找到特定的解决方案。我的饼图显示我[object Object]:0.0,没有显示正确的graph.pie图像enter image description here < / p>

请告诉我为什么会收到此错误。我的代码在下面。

    $(function () {

     // Radialize the colors
     Highcharts.getOptions().colors = Highcharts.map(Highcharts.getOptions().colors,   function(color) {
      return {
         radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 },
        stops: [
            [0, color],
            [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken
        ]
    };
});

// Build the chart
$('#container').highcharts({
    chart: {
        plotBackgroundColor: null,
        plotBorderWidth: null,
        plotShadow: false
    },
    title: {
        text: ' Rate of a specific project'
    },
    tooltip: {
        pointFormat: '{series.name}: <b>{point.percentage:.1f}</b>'
    },
    plotOptions: {
        pie: {
            allowPointSelect: true,
            cursor: 'pointer',
            dataLabels: {
                enabled: true,
                format: '<b>{point.name}</b>: {point.percentage:.1f}',
                style: {
                    color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                },
                connectorColor: 'silver'
            }
        }
    },
    series: [{
        type: 'pie',
        name: 'Total Marketing',
        data:[]

    }]
   });
    $.getJSON("data.php", function(data){

    //options.series[0].data = json;
        chart.series[0].setData(data);

       chart = new Highcharts.Chart(options);

    });
   });

这是 data.php

  $sql="SELECT mozila,ie,chrome,opera,safari,torch FROM webmarketing";
   $resultSql = mysql_query($sql);
   $result = array();
  while($rows=mysql_fetch_array($resultSql)) {
  $result[] = array('name' => 'MOZILA', 'y' => $rows['mozila']);
  $result[] = array('name' => 'IE', 'y' => $rows['ie']);
  $result[] = array('name' => 'CHROME', 'y' => $rows['chrome']);
     $result[] = array('name' => 'OPERA', 'y' => $rows['opera']);
   $result[] = array('name' => 'OTHERS', 'y' => $rows['safari']+$rows['torch']);
   }
   print json_encode($result, JSON_NUMERIC_CHECK);

json看起来像

    [{"name":{"MOZILA":45.0}},{"name":{"IE":26.8}},{"name":{"CHROME":12.8}},{"name":   {"OPERA":6.2}},{"name":{"OTHERS":9.2}}]

请给我解决方案。

1 个答案:

答案 0 :(得分:1)

根据您的评论,您的JSON是错误的。 Highcharts期望数据看起来像:

[val1, val2, val3,...,valN]

或者

[{"name1", val1},{"name2", val2},{"name3", val3},...,{"nameN", valN}]

或者

[{name: "name1", y: val1},{name: "name2", y: val2},{name: "name3", y: val3},...,{name: "nameN", y: valN}]

您需要调整JSON构建器以输出其中一种格式。对于PIE图表,我建议使用{"name1", val1}版本。