Flot饼图未显示(修订后的代码)

我需要一个饼图并找到Flot 。 它看起来简单而强大,但我发现的所有示例都使用固定值描述“数据”(例如[1,2]),但我需要显示动态数据。 我有五个变量,最终必须加起来为100.我想只包含那些值> 0的变量,如果它们总数不到100,我想添加一个显示缺失百分比的元素。 问题是我不知道如何动态构造数据参数。

我的代码如下。 它有两个问题:1)$ .plot什么都不做 – 没有错误,没有grapy 2)我不知道如何添加标签文本

function updatePieChart() { var total = 0; var data = new Array(); var verb = ""; var dataIndex = 0; for (var dataIndex = 0; dataIndex  0) { total += d; data[dataIndex] = new Array(); data[dataIndex].push(d); verb = getData(duty + "_SKILL"); if (verb == "") verb = duty + dataIndex; log(duty + dataIndex + ' value: ' + d); } } } var count = data.length; if (total != 100) { if (total < 100) { var missingDataNum = 100 - total; data[count] = new Array(); data[count].push(missingDataNum); verb = '**MISSING**'; log(verb + missingDataNum); } } $.plot($('#pieChart'), data, { series: { pie: { show: true, } }, legend: { show: false } }); } 

 var ary = new Array(); ary.push(1); // this is where you would push the numbers that are supposed to add to 100 ary.push(2); ary.push(23); ary.push(40); ary.push(10); ary.push(8); var result = 0; for (var i = 0; i< ary.length; i++) { result += ary[i]; } 

现在result应该包含总数。 下一个:

 if (result < 100){ var missing = 100 - result; ary.push(missing); } 

然后我只是将missing推到了数组的末尾。 因此,数组的内容将精确到100,而“空”(在本例中为16)是图中的最后一个元素。

那是你在找什么?

编辑 - 我会做以下事情,以防止+在JS中混淆。

 if (total != 100) { if (total < 100) { var missinDataNum = 100 - total; series.push('{label: **MISSING**,data: ' + missingDataNum + '}'); } } 

*第二次编辑*

 if (d1 > 0) series.push('{label: "' + d1v + '",data: ' + d1 + '}'); if (d2 > 0) series.push('{label: "' + d2v + '",data: ' + d2 + '}'); if (d3 > 0) series.push('{label: "' + d3v + '",data: ' + d3 + '}'); if (d4 > 0) series.push('{label: "' + d4v + '",data: ' + d4 + '}'); if (d5 > 0) series.push('{label: "' + d5v + '",data: ' + d5 + '}'); 

固定。 请参阅将数据作为变量传递时,jQuery Flot数据的格式是什么 。 问题是我没有正确地将数据对象格式化为jSON对象。