高图图表不绘图 - CSV

时间:2013-03-11 10:10:28

标签: javascript jquery arrays csv highcharts

目前无法将数据显示在高线图上。

我正在从CSV文件导入数据,并绘制此数据。 CSV文件采用以下格式:

"Row1","Row2","Row3"
"1362567600","67882833572","63034526585"
"1362571200","67834631584","63250345463"
"1362574800","67886235392","63654664341"
"1362578400","67883347248","63683239219"
"1362582000","67884373456","63905665096"

CSV文件中每行有44个元素。

我目前正以下列方式导入它:

$(document).ready(function() { 
    var c = [];
    var d = [];
    var e = [];

    $.get('test.csv', function(data) {
        var lines = data.split('\n');
        $.each(lines, function(lineNo, line) {
            var items = line.split(',');
            c.push(items[0]);
            d.push(items[1]);
            e.push(items[2]);
        });
        createGraph('container', 'line', 'Graph 1', c[0],d[0],c);
    });

});

函数createGraph采用参数 - divId(指定显示图形的div; graphType,graphTitle,line1,line2和graphCategories。

我创建了一个数组 - seriesData []并使用以下for循环向其添加数据:

seriesData[0] = "[";
for (var i = 1; i < graphCategories.length - 1; i++){
    seriesData[i] = "["+(graphCategories[i].replace(/["']{1}/gi,"")*1000)+","+876+"],";
}
seriesData.push("],");

在控制台上记录此数组时,它看起来像这样:

[,[1362567600000,876],,[1362571200000,876],,[1362574800000,876],,[1362578400000,876],,],

然后在绘制图表时使用:

series: [{
            name: line1,        
            data: seriesData
        }]

(还有另一条线,但为了简单起见,我只是展示了一条线)。

我的问题是,为什么图表上没有显示任何内容?我得到以下输出:

Highchart Example

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

这一行看起来不对。

seriesData[0] = "[";
seriesData.push("],");

我认为您不需要将[或]添加到数组中。

我会更喜欢这样做:

for (var i = 1; i < graphCategories.length - 1; i++){
    // Push the x value.
    seriesData[i].push(graphCategories[i].replace(/["']{1}/gi,"")*1000);
    // Push the y value.
    seriesData[i].push(876);
}