首页 > 解决方案 > 创建图表时未按预期返回数据

问题描述

我正在创建这样的图表:

$.getJSON('./menluvas?colt2' + '&colt2=' + colt2, function (data) {
    
    var series = [],
        len = data.length,
        i = 0;
        
     for(i;i<len;i++){
        series.push({
            name: [data[i][0]]
        });
     }
     

     console.log(series);
    
    
    $('#container2').highcharts({
        chart: {
            renderTo: 'container2',
            type: 'column',
        options3d: {
            enabled: true,
            alpha: 0,
            beta: 0,
            depth: 20,
        }
        },
        title: {
            text: '' +idf+  ' - AVALIAÇÃO CONSUMOS LUVAS' 
        },
        xAxis: {
            categories: series
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Unidade - (1 Caixa = 100 Luvas)'
        },
        stackLabels: {
            enabled: true,
            
        }
        },
        plotOptions: {
            column: {
                dataLabels: {
                    enabled: true,  
                }
            }
        },
        series: [{
            name: 'Janeiro',
            data: data
            }]
    });
});

series变量返回以下值:

(3) [{…}, {…}, {…}]
0:
name: ["Vinil s/ pó"]
__proto__: Object
1:
name: ["Latex s/pó"]
__proto__: Object
2:
name: ["Nitrilo"]
__proto__: Object
length: 3
__proto__: Array(0)

创建图形时,我在 xAxis 中使用series变量。但该图没有显示如上的值并返回[object object],如图所示:

图片

我想要的是 [object object] 返回的地方,你必须返回series变量的数据。

标签: javascripthighcharts

解决方案


xAxis需要一个数组,但您传递的是一个数组Objects,每个数组都有一个name标签。你在这里这样做:

 for(i;i<len;i++){
    series.push({
        name: [data[i][0]]
    });
 }

相反,您需要类似的东西:

 for(i;i<len;i++){
    series.push(data[i][0]);
 }

我没有测试过代码


推荐阅读