chartjs推送数组标签不起作用

时间:2017-10-14 06:55:54

标签: javascript chart.js

动态更新chartjs图表并以数组格式创建标签([“A”,“B”,“C”])。但是,chartjs不接受标签数组的推送,除非它的格式为“A”,“B”,“C”(没有括号)。其他人是否经历过此或我误解了? Se代码如下。生成此enter image description here

而不是这个(将标签添加为chart.data.labels.push(“A”,“B”,“C”,“D”)时确定 enter image description here

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();

2 个答案:

答案 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]);
}