在HighCharts的条形图中显示数组值

时间:2013-12-07 05:00:20

标签: javascript highcharts

我正在尝试显示动态获取的值。在下面的代码中,我试图将值存储在数组中,并且我正在尝试使用" series:data"中的数组值。 图表中没有显示任何内容。 我知道这是一个非常简单的问题,但当我用Google搜索时,我没有得到任何满意的答案。请帮忙

var x = window.location.search.replace( "?", "" );
        x = x.substring(3);
        var array = x.split(",");  // I am storing my dynamic values in  this array


$(function () {
        //alert(array);   ----- I am able to see the values here 
        $('#container').highcharts({
            chart: {
                type: 'bar'
            },
            title: {
                text: 'Wireless Experience Meter'
            },
            subtitle: {
                text: 'Sub - Time to Download'
            },
            xAxis: {
                categories: ['Text'],
                title: {
                    text: null
                }
            },
            yAxis: {
                min: 0,
                title: {
                    text: 'Time (ms)',
                    align: 'high'
                },
                labels: {
                    overflow: 'justify'
                }
            },
            tooltip: {
                valueSuffix: ' ms'
            },
            plotOptions: {
                bar: {
                    dataLabels: {
                        enabled: true
                    }
                }
            },
            legend: {
                layout: 'vertical',
                align: 'right',
                verticalAlign: 'top',
                x: -40,
                y: 100,
                floating: true,
                borderWidth: 1,
                backgroundColor: '#FFFFFF',
                shadow: true
            },
            credits: {
                enabled: false
            },
            series: [{
                name: 'Attempt 1',
                //data: [635, 203, 200] 
                data : [array[0]]   // I need to pass the variables here to get it displayed 
            }, {
                name: 'Attempt 2',
                //data: [133, 408, 698]
                data : [array[1]]
            }, {
                name: 'Attempt 3',
                //data: [973, 914, 4054]
                data : [array[2]]
            }]
        });
    });

2 个答案:

答案 0 :(得分:2)

你没有告诉我们变量array等于什么,但是因为它是从x.split(",")生成的,所以它的元素将是字符串而不是Highcharts需要的数值。

因此请将其转换为parseIntparseFloat

var numericData = [];
for (var i = 0; i < array.length; i++){
   numericData.push(parseFloat(array[i]));
}
...
series: [{
   name: 'Attempt 1',
   data : numericData 
},
...

答案 1 :(得分:0)

[array[0]]不是数组,看起来像console输出而不是javascript。但是技术上会[[0]][0]。但是,由于对数组(array(0))的调用会生成一个数组,因此我认为您需要data: array(0)

如果您没有正确显示示例数据,则在data : [array(0)]处外拍。我从来没有使用过HighCharts所以我不知道它的预期但我仍然使用data : array(0)