0

2 つの異なる CSV ファイルからロードされた 2 つの一連のデータを含む Highcharts ライブラリを使用してスプライン チャートを作成しましたが、正常に動作します。今度は別のスプライン グラフが必要ですが、54 のデータ系列があります。

PHP を使用して 54 個の CSV ファイルを作成しました。チャートを生成する Javascript コードは次のとおりです。

<script type="text/javascript">
$(function () {
    var chart;
    $(document).ready(function() {
        var options = {
            chart: {
                renderTo: 'chart_day',
                type: 'spline'
            },
            title: {
                text: 'Andamento giornaliero temperatura.'
            },
            xAxis: {
                type: 'datetime',
                second: '%H:%M:%S'
            },
            yAxis: {
                title: {
                    text: 'Temperatura (°C)'
                },
            },
            tooltip: {
                formatter: function() {
                    return '<b>'+ this.series.name +'</b><br/>'+
                    Highcharts.dateFormat('%H:%M:%S', this.x) +': '+ this.y +' °C';
                }
            },
            series: [ <?php for($i=0;$i<52;$i++)
                echo "{ name: \"Sensor".($i+1)."\", data: []},";
                echo "{ name: \"Sensor".($i+1)."\", data: []}";
            ?>]
        };

        for( i=1; i<=54; i++){
            if(i!=5){
                $.get('file/file'+i+'.txt', function(data) {
                    // Split the lines
                    var lines = data.split('\n');

                    // Iterate over the lines and add categories or series
                    $.each(lines, function(lineNo,line) {
                        if (line != "") {
                            var items = line.split(',');
                            var timeElements = items[0].split(':');
                            var date = Date.UTC(2004, 2, 1, timeElements[0], timeElements[1], timeElements[2], 0);
                            options.series[i-1].data.push([date,parseFloat(items[1])]); 
                        }
                    });
                    if(i==54)
                    chart = new Highcharts.Chart(options);
                });
            }
        }
    });
});
</script>

JS コンソールにエラーがあります:

"Uncaught TypeError: 未定義のプロパティ 'データ' を読み取ることができません"

4

1 に答える 1

0

シリーズの初期化が壊れているようです。これを試して

var series  = [];
for(i=0;i<52;i++)
{
   series.push({name: ('Sensor' + (i + 1)), data: []});
}

このシリーズオブジェクトをオプションで設定します。

var options = {
            ..
            series: series
        };
于 2013-01-26T12:20:22.660 に答える