3

1.) 新しい Rickshaw.Graph.Ajax を使用してデータにアクセスするにはどうすればよいですか? AJAX 経由で呼び出される JSON のサンプル セットを含む、私の完全なコードを以下に示します。

(function(){
    var ajaxGraph = new Rickshaw.Graph.Ajax( {
        element: document.getElementById("chart"),
        width: 400,
        height: 200,
        renderer: 'line',
        dataURL: '/data.json',
        onData: function(data) {
            var arrData = [];
            $.each(data[0], function(i, l){
                var rawData = l.data;
                arrData.push(rawData);
                return arrData;
            });

        }
    } );

})();

//JSON サンプル

[{
    "took": 32,
    "total": 34200,
    "strokeVolume_count": {
        "name": "strokeVolume_count",
        "data": [
            {"x": 1387130400000,"y": 1800},
            {"x": 1387134000000,"y": 1800}
         ]
     }
}]

2.) .render() メソッドを使用するタイミングをどのように知る必要がありますか? これが一部のチャートで使用され、他のチャートでは使用されていない例を見てきました。Rickshaw/github のドキュメントを読んで、グラフを描画または再描画するために使用することを説明していますが、この方法を使用せずに他の例が表示されるのを見てきました。

4

1 に答える 1

1

最初の質問の意味がよくわかりませんが、onData 関数からシリーズ オブジェクトの配列を返す必要があります。

graph.render() の呼び出しに関しては、次のように onComplete コールバックに呼び出しを配置することに成功しました。

(function(){
    var ajaxGraph = new Rickshaw.Graph.Ajax( {
        element: document.getElementById("chart"),
        width: 400,
        height: 200,
        renderer: 'line',
        dataURL: '/data.json',
        onData: function(data) {
            return [{
                name : "Stroke Volume"
                data : data[0].strokeVolume_count.data;
            }];
            // or simply return [data[0].strokeVolume_count]; since it looks like a series object already
        },
        onComplete: function() {
            // this is also where you can set up your axes and hover detail
            this.graph.render();
        }
    } );

})();
于 2014-01-07T17:28:02.103 に答える