4

我已经阅读了 Highcharts 操作方法,检查了演示画廊,搜索了谷歌,在 stackoverflow 上阅读了 X 数量的完全相同的线程,但我无法让它工作。

我以日期、值的形式将数据记录在 csv 文件中。

这是日期的样子

1355417598678,22.25
1355417620144,22.25
1355417625616,22.312
1355417630851,22.375
1355417633906,22.437
1355417637134,22.437
1355417641239,22.5
1355417641775,22.562
1355417662373,22.125
1355417704368,21.625

这就是我设法获得代码的程度:

http://jsfiddle.net/whz7P/

这会呈现一个图表,但根本没有序列或数据。我想我在格式化数据时会弄虚作假,以便可以在高图中进行解释。

任何人都可以伸出援助之手吗?

4

4 回答 4

4

所以,你有以下数据结构,对吧?

1355417598678,22.25
1355417620144,22.25
1355417625616,22.312
1355417630851,22.375
1355417633906,22.437
1355417637134,22.437
1355417641239,22.5
1355417641775,22.562
1355417662373,22.125
1355417704368,21.625

然后你把它分成一个行数组,所以每个数组项都是一行。
然后对每一行执行以下操作。

var items = line.split(';'); // wrong, use ','

但是没有成行;,你应该使用,.
结果将是一个多维数组,其中每个项目都是具有以下结构的数组。它将存储在一个名为data.

"1355417598678","22.25" // date in utc, value

这是每个系列的预期数据,因此您可以将其直接传递给您的serie.

var serie = {
    data: data,
    name: 'serie1' // chose a name
}

结果将是一个工作图。

所以一切都可以恢复到以下。

var lines = data.split('\n');
lines = lines.map(function(line) {
    var data = line.split(',');
    data[1] = parseFloat(data[1]);
    return data;
});

var series = {
    data: lines,
    name: 'serie1'
};
options.series.push(series);
于 2012-12-13T21:26:53.100 回答
1

查看您的 line.split 部分:

$.get('data.csv', function(data) {
        // Split the lines
        var lines = data.split('\n');
        $.each(lines, function(lineNo, line) {
            var items = line.split(';');

看起来您正在尝试使用分号 (;) 而不是逗号 (,) 进行拆分,这是示例 CSV 数据中的内容。

于 2012-12-13T21:25:37.870 回答
0

你需要把

    $(document).ready(function() {

在第一行,并且

     });

在 javascript 的最后一行来完成这项工作。

于 2013-05-28T02:40:14.953 回答
0

你能上传你的csv文件吗?它与您在原始帖子中写的相同吗?我遇到了同样的问题,结果数据文件中有错误。

于 2013-08-07T20:18:49.460 回答