动态更新chartjs图表并以数组格式创建标签([“A”,“B”,“C”])。但是,chartjs不接受标签数组的推送,除非它的格式为“A”,“B”,“C”(没有括号)。其他人是否经历过此或我误解了? Se代码如下。生成此
而不是这个(将标签添加为chart.data.labels.push(“A”,“B”,“C”,“D”)时确定
var chart = new Chart(document.getElementById("element"), {
type: 'bar',
options: {
legend: {
display: false
}
}
});
//PUSH DATA TO GRAPH.
var verserier = [];
var veromslperserie = [];
var stat = seriestat(); //function to retrieve data for labels
$.each(stat, function(i, item) {
verserier.push(i);
veromslperserie.push(item["omsl"]);
});
chart.data.labels.push(verserier); //error occurs here
chart.data.datasets.push({
label: "Omsl",
data: veromslperserie,
backgroundColor: colorarray,
});
chart.update();
答案 0 :(得分:0)
当你推到循环之外时,你实际上将更多的东西推到了位置[n],在这种情况下是0。
如果您不再添加值,则可以执行
chart.data.labels = verserier
答案 1 :(得分:0)
我没有“为什么”的解释,但这是一种解决方法:
var data_array = new Array();
// This doesn't work (but with no error on my side, appart from visually wrong labels)
myChart.data.labels.push(data_array);
// But this works
for(i=0;i<data_array.length;i++)
{
myChart.data.labels.push(data_array[i]);
}