0

我遇到了下一个问题:当我获取数据并尝试构建 jqPLot PieChart 时,萤火虫说uncaught exception: No Data 这是我的数据检索函数:

function getValues(){
        var myArr=[];

        $.ajax({
                type : "POST",
                url : myUrl,
                data : {

                },
                success : function(response) {
                    for ( var i = response.myList.length - 1; i >= 0; --i) {
                        var obj = response.myList[i];
                        var id = obj.id;
                        var name = obj.name;
                        var value = obj.value;

                        ......some code here....
                        myArr.push[{name:value}];

                    }
                },

                error : function(response) {
                    alert("your request cannot be handled. " + response);
                }
            });
            drawPieChart(myArr);
}

这是我的 drawPieChart 函数:

function drawPieChart(array) {
     var plot1 = jQuery.jqplot ('chartdiv', [array], 
                { 
                  seriesDefaults: {
                    // Make this a pie chart.
                    renderer: jQuery.jqplot.PieRenderer, 
                    rendererOptions: {
                      // Put data labels on the pie slices.
                      // By default, labels show the percentage of the slice.
                      showDataLabels: true
                    }
                  }, 
                  legend: { show:true, location: 'e' }
                }
              );
}

这是html源代码,我想在其中插入我的饼图:

<div id="chartdiv" style="height:400px;width:300px; "></div>

那么有人可以帮我解决这个问题吗?我做错了什么?jqPlot 的所有文件都正确连接。

4

2 回答 2

0

jqPlot 只接受 [[[X, Y], ...]]

所以将 myArr.push({name: value}) 更改为 myArr.push([name, value])

http://www.jqplot.com/deploy/dist/examples/pie-donut-charts.html

于 2012-09-11T05:56:06.253 回答
0

您提供数据的方式是错误的,请尝试如下进行硬编码:

var data = [
['Heavy Industry', 12],['Retail', 9], ['Light Industry', 14], 
['Out of home', 16],['Commuting', 7], ['Orientation', 9]]

使用一些简单的值,看看你是否可以让它运行,如果它有效,然后解决这个问题。

于 2012-09-11T16:49:11.060 回答