0

折れ線グラフの合計データを使用して、flot 円グラフと一緒に表示したい ajax 駆動の flot 折れ線グラフを作成しました。

折れ線グラフのデータは次のようになります。

var datasets = {
    "usa": {
        label: "USA",
        data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]]
    },        
    "russia": {
        label: "Russia",
        data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]]
    },
    etc...
};

円グラフ プラグインに適合するように、このデータを集計する最も簡単な方法は何ですか? この現在の結果セットを円グラフにフィードすると、各データセットの最初の値のみが考慮されます。

ありがとう!

4

2 に答える 2

0

最終的に、各グラフの結果をサーバー側で 1 つの json 応答に結合し、クライアントで次のように引き出すというアプローチを使用することになりました。

var datasets = {
"usa-line": {
    label: "USA",
    data: [[1988, 483994], [1989, 479060], [1990, 457648], [1991, 401949], [1992, 424705], [1993, 402375], [1994, 377867], [1995, 357382], [1996, 337946], [1997, 336185], [1998, 328611], [1999, 329421], [2000, 342172], [2001, 344932], [2002, 387303], [2003, 440813], [2004, 480451], [2005, 504638], [2006, 528692]]
},  
"usa-pie": {
    label: "USA",
    data: [[1, TOTAL GOES HERE]]]
},        
"russia-line": {
    label: "Russia",
    data: [[1988, 218000], [1989, 203000], [1990, 171000], [1992, 42500], [1993, 37600], [1994, 36600], [1995, 21700], [1996, 19200], [1997, 21300], [1998, 13600], [1999, 14000], [2000, 19100], [2001, 21300], [2002, 23600], [2003, 25100], [2004, 26100], [2005, 31100], [2006, 34700]]
},
"russia-pie": {
    label: "Russia",
    data: [[1, TOTAL GOES HERE]]]
}
};

次に、ajax イベントのコールバックで、それらを各グラフの個別のデータセットに解析しました。

$.ajax({
        type: "POST",
        dataType: 'json',
        url: "url goes here",
        data: "data goes here",
        success: function (datasets) {         
            linedata = [];
            pieData = [];

            $.each (datasets, function (objName) {
                if(objName.indexOf('-line') != -1)
                    linedata .push(datasets[objName]);
                        else
                    pieData.push(datasets[objName]);
            });                       

            $.plot(plotarea, linedata , options /* options defined elsewhere */);
            $.plot(piearea, pieData, pieOptions /* pieOptions defined elsewhere */);  
        }
    });
于 2011-07-07T21:21:04.917 に答える
0

次のように、各年の値を個別にグラフ化するのがおそらく最善でしょう。

増分/減分ボタンなどの適切なコンポーネントで年を選択できるようにします。選択した年について、各国のそれぞれの値をプロットします。たとえば、1988 年に、米国の場合は 483994、ロシアの場合は 218000 をプロットします。

于 2011-07-07T00:16:59.747 に答える