am chart饼图没有读取json文件数据?

时间:2017-04-20 07:36:58

标签: php json amcharts

当我们传递像[{category":"a","data:"3"},"category":"b","data":"1"}]这样的静态数据列表时 然后它的工作正常,但是当我们在dataprovider部分中传递像{"url": "abc.php","format": "json"}这样的页面网址时,则图表不会填充。

这是我的代码:

var chart = AmCharts.makeChart("chartdiv", { 
    "type": "pie", 
    "dataProvider":{ "
        url": "abc.php",
        "format": "json" }, 
    "labelRadius": -35, 
    "labelText": "[[percents]]%", 
    "titleField": "category", 
    "valueField": "column-1", 
    "allLabels": [], 
    "balloon": {}, 
    "legend": { 
        "enabled": true, 
        "align": "center", 
        "markerType": "circle" } 
    });

任何解决方案?

1 个答案:

答案 0 :(得分:2)

将amCharts与“静态”数据结合使用

如果您有“静态”数据,请使用dataProvider设置,如下所示:

var chart = AmCharts.makeChart("chartdiv", {
  "type": "pie",
  "dataProvider": [{
    "category": "a",
    "data": 3
  }, {
    "category": "b",
    "data": 1
  }],
  // ...
});

将amCharts与AJAX数据结合使用

如果您想使用AJAX加载数据,一种方法是使用amCharts的Data Loader插件。

确保将其包含在HTML中:

<script src="amcharts/plugins/dataloader/dataloader.min.js" type="text/javascript"></script>

取消dataProvider设置,改为使用dataLoader

var chart = AmCharts.makeChart( "chartdiv", {
  "type": "pie",
  "dataLoader": {
    "url": "abc.php",
    "format": "json"
  },
  // ...
});

您的abc.php文件应返回有效的JSON,如下所示:

[{
  "category": "a",
  "data": 3
}, {
  "category": "b",
  "data": 1
}]

您可以在此处找到Data Loader插件的完整选项列表:https://www.amcharts.com/kbase/using-data-loader-plugin/