我正在尝试做一些图表并遇到这个奇怪的错误消息。以下是一个有效的例子:
$.ajax({
type: "GET",
dataType: "json",
url: "/data/active_projects_per_phase",
success: function (result) {
$.plot($("#active_per_phase"), result, {
series: {
pie: {
show: true,
label: {
show: true,
radius: 3 / 4,
formatter: function (label, series) {
return label + ': ' + series.data[0][1] + ' (' + Math.round(series.percent) + '%)';
},
background: {
opacity: 0.5
}
}
}
},
legend: {
show: false
}
});
}
});
url返回以下数据:
[
{
"data": 24,
"label": "\u0411\u0438\u0437\u043d\u0435\u0441-\u0438\u0434\u0435\u044f"
},
{
"data": 31,
"label": "\u041f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435"
},
{
"data": 26,
"label": "\u0418\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435"
},
{
"data": 1,
"label": "\u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435"
}
]
然而,它无法使用此数据并显示“无法使用画布中包含的标签绘制饼图”错误:
[
{
"data": 6,
"label": "\u0417\u0430\u043a\u0440\u044b\u0442"
},
{
"data": 11,
"label": "\u041e\u0442\u043c\u0435\u043d\u0435\u043d"
},
{
"data": 1,
"label": "\u041e\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d"
},
{
"data": 5,
"label": "\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d \u0432 \u0434\u0440\u0443\u0433\u043e\u0439 \u043f\u0440\u043e\u0435\u043a\u0442"
},
{
"data": 4,
"label": "\u041f\u0435\u0440\u0435\u043d\u0435\u0441\u0435\u043d \u0432 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443"
}
]
我在图表设置中缺少什么才能克服这个问题?
答案 0 :(得分:11)
flot的pie功能对图例和标签有限制。代码确保图例/标签保持在画布的边界内,如果没有,则会失败,如您所见。您的选择是:
legend.container
选项在画布外部使用图例指定外部div
答案 1 :(得分:1)
尝试减少标签的文字,或者尝试减少标签的半径,我从这里开始提示 http://people.iola.dk/olau/flot/examples/pie.html
我减少了标签的半径,问题对我来说是固定的。