0

我已经在谷歌上搜索了一段时间,试图找到解决我的问题的方法,但是我发现的一切都太复杂了!

我有一个有效的 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
            }
        }
    }); }
 } 
4

1 回答 1

2

原来我已经回答了我自己的问题。这是我现在用来获取未标记的 JSON 数组(例如[1, 2, 4, 1, 5])的代码,确保数组包含数据(即不是[0, 0, 0, 0, 0]),添加标签然后显示图表:

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;
 }
于 2012-07-24T10:29:22.423 回答