我一直在谷歌搜索试图找到解决问题的方法,但我发现的所有内容都过于复杂了!
我有一个有效的Flot饼图。它以这种格式从Django接收JSON数组:
[0, 3, 5, 6, 7]
数组表示每个系列的实例数(即系列1的0个实例,系列2的3个实例等)。
然后使用此代码在一个简单的Flot饼图中显示该数组(theData
是上面的数组):
function loadTotalChart(theData) {
$.plot($("#total-pie-chart"), theData ,
{
series: {
pie: {
show: true
}
},
label: {
show:true
},
legend: {
show: false
},
grid: {
hoverable: true,
}
});
}
问题是数组中的标签未定义,因此我的饼图显示每个系列的“未定义:30%”或类似。
我要做的是为每个系列添加标签:图表的每个实例的标签都相同。
如何获取JSON数组,添加标签然后将其传递给Flot ??
非常感谢!
编辑:
感谢Liam McCann,我现在有了这段代码,只有在有数据时才能绘制图表:
function checkJsons(otherJson,newJson)
{
for (var key in otherJson) {if(otherJson[key] != newJson[key]) {return false;}}
return true;
}
function loadWeekChart(theData)
{
var blankData = [0, 0, 0, 0, 0];
if(checkJsons(blankData,theData)){$('#week-pie-chart').empty().append('Nothing to show yet');}
else { $.plot($("#week-pie-chart"), theData ,
{
series: {
pie: {
show: true
}
}
}); }
}
答案 0 :(得分:2)
原来我已经回答了我自己的问题。这是我现在用于获取未标记的JSON数组的代码(例如[1, 2, 4, 1, 5]
),确保数组包含数据(即不是[0, 0, 0, 0, 0]
),添加标签然后显示图表:< / p>
function loadTotalChart(theData) {
var blankData = [0, 0, 0, 0, 0];
if(checkJsons(blankData,theData)){
$('#total-pie-chart').empty().append('Nothing to show yet');
} else {
var totalPieData = [
{label: "1/5", data:theData[0]},
{label: "2/5", data:theData[1]},
{label: "3/5", data:theData[2]},
{label: "4/5", data:theData[3]},
{label: "5/5", data:theData[4]},
];
$.plot($("#total-pie-chart"), totalPieData ,
{
series: {
pie: {
show: true
}
},
label: {
show:true
},
legend: {
show: false
},
grid: {
hoverable: true,
}
});
}
}
如果有人能看到代码有任何问题或更好的方法,请告诉我们!
编辑:回头看这个问题,我意识到我没有包含在这个函数中引用的checkJsons函数。这是:function checkJsons(otherJson,newJson){
for (var key in otherJson) {if(otherJson[key] != newJson[key]) {return false;}}
return true;
}