0

x csv ファイルを読み込んで、データを折れ線グラフにレンダリングしたいと考えています。1 つの csv ファイルを読み込んで折れ線グラフを作成すると、既に正常に動作します。

私のcsvファイル:

Date,PV,Energy
1355100420,0.000,0.851
1355100480,0.000,0.841
1355100540,0.000,1.000
1355100600,0.000,0.984
1355100660,0.000,1.006
1355100720,0.000,2.769
1355100780,0.000,2.791

私の問題: csv ファイルの数はさまざまで、正しい順序が重要です。これは、x 軸が時間軸であり、csv の 1 列目に日付/時刻があるためです。

単一の csv を読み取る:

$.get(csv_file, function(data) {
    var series = [];
    // Split lines
    var lines = data.toString().split('\n');
    // For each line, split the record into seperate attributes
    $.each(lines, function(lineNo, line) {
        var items = line.split(',');
        // first line contains the series names
        if (lineNo === 0) {
            for (var i = 1; i < items.length; i++) {
                series.push({
                    name : items[i],
                    data : [],
                    dataGrouping : {
                        enabled : false
                    }
                });
            }
        } else {
            for (var i = 1; i < items.length; i++) {
                // get the serie
                var serie = series[i - 1];
                serie.data.push([parseFloat(items[0] * 1000), parseFloat(items[i])]);
            }
        }
    });
    chart = new Highcharts.StockChart({
        chart : {
            renderTo : container_id,
            type : 'line',
            reflow : true,
        },
        xAxis : {
            type : 'datetime'
        },
        series : series
    });
});

しかし、複数のcsvファイルを正しい順序で読み取るにはどうすればよいですか?

どうもありがとう!

4

2 に答える 2

0

複数のファイルをロードする方法の例を見つけることができます: http://www.highcharts.com/stock/demo/compare

違いは、最初の投稿で行っているように、最初にその値を解析し、それらを 1 つの配列にプッシュする必要があることです。次のステップは、単にその配列をソートし (単純data.sort(function(a,b){ return a[0] - b[0]; })で十分なはずです)、ソートされたデータを に入れることseries.dataです。

于 2013-04-11T15:41:44.493 に答える