Flot系列标签未定义

时间:2015-07-14 21:20:08

标签: jquery graph jquery-plugins flot

我努力让我的饼图显示正确的标签,而不是" undefined"。

在我的控制台日志中,标签就在那里,并且正在显示金额。

[ { label: "Opened", data: 5}, { label: "Qualified", data: 6}, { label: "Closed", data: 1}, { label: "Pending", data: 2},];

这是从$ .each函数中获取的,该函数从ajax查询中接收数据。

我有以下脚本创建图表:

var dataOut = "[";
$.each(value, function(item2, val2){
    dataOut = dataOut + ' { label: "' + val2[0] + '", data: ' + val2[1] + '},';
});
dataOut = dataOut + "];";

var placeholder = $("#graph_myleads");

$.plot(placeholder, dataOut, {
    series: {
        pie: { 
            show: true,
            radius: 3/4,
            label: {
                show: true,
                radius: 3/4,
                formatter: _labelFormatter,
                background: {
                    opacity: 0.5,
                    color: '#000'
                }
            }
        }
    },
    legend: {
        show: false
    }
});

以及标签的以下格式化程序:

var _labelFormatter = function(label, series) {
    return "<div style='font-size:8pt; text-align:center; padding:2px; color:white;'>" + series.label + "<br/>" + Math.round(series.percent) + "%</div>";
};

代码目前正在输出:

enter image description here

对此的任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:0)

输出label而不是series.label

var _labelFormatter = function(label, series) {
    console.log(dataOut);
    return "<div style='font-size:8pt; text-align:center; padding:2px;     color:white;'>" + label + "<br/>" + Math.round(series.percent) + "%</div>";
};

答案 1 :(得分:0)

你有你的数据作为数组(这是flot需要的),但是你从那里构建一个字符串并尝试将其提供给flot。只需更改$.each循环即可构建数组。

var dataOut = [];
$.each(data, function (item2, val2) {
    dataOut.push( { label: val2[0], data: val2[1] });
});

$.plot(placeholder, dataOut, { ... });

有关正常工作的代码,请参阅此fiddle