0

Highcharts でチャート シリーズを設定する方法の何が問題なのかを見つけるのに苦労しています。グラフのアウトラインはレンダリングされますが、シリーズはレンダリングされません。これは、データ セットに問題があることを示しています。解析された後、取り込まれた JSON データは正常に見えます (上部近くのコメントアウトされたハードコードされたデータ ブロックは、データがどのように表示されるかです)。Highcharts API を確認し、他の方法を試してみましたが、役に立ちませんでした。データを間違ってプッシュしているだけなのだろうか?私の javascript/jquery の知識は非常に基本的なものです。ありがとう!

 data.push([xval, yval]);

Jsfiddle リンク

4

2 に答える 2

3

グラフがレンダリングされるようにコードを変更しましたhttp://jsfiddle.net/u4kaC/13/

のコールバックでグラフを作成する必要があります

$.getJSON(...)

このコードを移動しました

var chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container'
                },
                xAxis: {
                    type: 'datetime'
                },
                series: [{
                    data: data
                }]

「データ」配列を作成した直後。問題は、getJson(..)関数のコールバックがトリガーされ、「data」オブジェクトが作成される前にグラフを描画しようとしたため、「data」オブジェクトが常に空になり、グラフが作成されなかったことです。描かれる:)

関数の外観は次のとおりです

$.getJSON('http://api.cosm.com/v2/feeds/79903/datastreams/Temperature.json?start=2012-10-31T14:01:46Z&end=2012-11-03T17:01:46Z&interval=3600?key=dNSiSvXZtR6QBUqbzll4CCgnngGSAKxIQVFSeXBneGpqWT0g', 
        function(inData) 
        {
            var xval = new Date();
            dateStart = Date.parse(inData.datapoints[0].at);
            for (i=0; i<inData.datapoints.length; i++)
            {
                var yval = parseFloat(inData.datapoints[i].value);
                xval = Date.parse(inData.datapoints[i].at);
                var x = [xval, yval];                   

                data.push({x: xval, y:yval});


             });

             var chart = new Highcharts.Chart({
                chart: {
                    renderTo: 'container'
                },
                xAxis: {
                    type: 'datetime'
                },
                series: [{
                    data: data
                }]
               }
             });
于 2012-11-05T08:09:09.753 に答える
1

ちょっとした修正 - 上記の回答では、グラフは for ループ内で作成され、データの各ポイントに対して 1 つのグラフが開始されます。これは、チャートの開始をループの外に移動することで修正されています: http://jsfiddle.net/highcharts/u4kaC/15/

$.getJSON('http://api.cosm.com/v2/feeds/79903/datastreams/Temperature.json?start=2012-10-31T14:01:46Z&end=2012-11-03T17:01:46Z&interval=3600?key=dNSiSvXZtR6QBUqbzll4CCgnngGSAKxIQVFSeXBneGpqWT0g', function(inData) {
    var xval = new Date();
    dateStart = Date.parse(inData.datapoints[0].at);
    for (i = 0; i < inData.datapoints.length; i++) {
        var yval = parseFloat(inData.datapoints[i].value);
        xval = Date.parse(inData.datapoints[i].at);
        var x = [xval, yval];

        data.push(x);
    }
    //data.push({x: xval, y:yval});
    var chart = new Highcharts.Chart({
        chart: {
            renderTo: 'container'
        },
        xAxis: {
            type: 'datetime'
        },
        series: [{
            data: data}]
    });
});
于 2012-11-05T08:24:36.250 に答える