Highcharts/highstocks Javascript 来自 CSV 文件

Highcharts/highstocks Javascript from CSV file

我想要一个可以从 CSV 文件中绘制多个流的 highstocks 图表。我的 csv 数据如下所示:

TIMESTAMP,DATA
2013-07-25 17:52:13.490,98425702
2013-07-25 17:52:34.840,382307
2013-07-25 17:52:55.900,380769
2013-07-25 17:54:37.380,500000
2013-07-25 17:54:47.910,98360155
2013-07-25 17:54:58.440,430000
2013-07-25 17:55:08.970,282307
2013-07-26 19:46:30.950,116923

Javascript 在我的 index.html:

<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.highcharts.com/stock/highstock.js"></script>
<script type="text/javascript" src="http://code.highcharts.com/modules/data.js"></script>

<script type="text/javascript">
// Create the chart
$(function() {
    var magx = [];
    $.get('magx-11.csv', function(csv1) {
        var lines = csv1.split('\n');
        for (i=0; i<lines.length; i++) {
            var elements = lines.split(',');
            for (j=0; j<lines.length; j++) {
                magx.push([ elements[j] ])
            }
        }
        console.log(magx);
    });

    $('#container').highcharts('StockChart', {
        xAxis: {
            type: 'datetime'
        },
        title: {
            text: 'Data'
        },
        series: [{
            name: 'Mag X',
            data: magx,
        }]
    });

});
</script>

有:

<body>
    <div id="container" style="width: 1200px; height: 400px; margin: 0 auto"</div>
</body>

所以,我首先尝试弄清楚我需要如何解析数据。我已经看到关于拆分新行的各种参考,然后是 ',' 分隔符。但是从日志输出来看,我认为数据没有被传递到下一个函数,我希望得到一些帮助。

这也没什么影响:

magx.push([ parseFloat(elements[j])

我也希望能够为多个 csv 文件扩展它。

(我暂时忽略那里不正确的日期时间处理)。

我已经看过:Reading data from CSV with highstock and Highchart from CSV file with JavaScript。非常感谢!

技巧是研究 JSON 格式,然后是 Data.parse() 格式。文档嗯?

还有“Highcharts 错误 #15:http://www.highcharts.com/errors/15 highstock.js:13:195"。我的数据是按日期排序的,这还不够好吗?

现在需要将其转换为每个图表的多个 csv。

$(function() {

    var magx = [];

    $.get('stuff.csv', function(csv1) {

                var lines = csv1.split('\n');

                $.each(lines, function(lineNo, line) {
                       var items = line.split(',');

                       if(lineNo > 0) {
                            var ds1 = items[0].split(' ');
                                magx.push( [ Date.parse(ds1[0] + "T" + ds1[1]) , parseFloat(items[1]) ] );
                       };
                });

                var options = {

                xAxis: {
                type: 'datetime'
                },

                exporting: {
                enabled: true
                },

                series: [{
                         name: 'Data 1',
                         data: magx
                         }]

                };

                var chart = $('#container').highcharts('StockChart', options);

            });

          });