我努力让我的饼图显示正确的标签,而不是" 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>";
};
代码目前正在输出:
对此的任何帮助将不胜感激:)
答案 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。