0

このコードを機能させるのに苦労しています

var theBeeyatch = d3.csv("data/SalesDUMP.csv", function(csv) {

    csv = csv.filter(function(row) {
        return row['Year'] == '2012' || row['Month'] == '1';
    })
});

var Chart = d3.select("body")
    .append("svg")
    .attr("width", 400)
    .attr("height", 200)

    .selectAll("rect")
    .data(theBeeyatch)
    .enter().append("rect")
    .attr("x", function (d, i) {return i * 20 + 20;})
    .attr("y", 100)
    .attr("width", 20)
    .attr("height", function (d) {return d.Year;});

CSVファイルは次のようになります

Year,Month,ProductClass,Sales
2011,1,BA  ,28840
2011,1,BH  ,2800
2011,1,MB  ,1103200
2012,1,BA  ,70680
2012,1,MB  ,1596000
2012,1,_OTH,1530
2013,1,BA  ,120513.6
2013,1,BH  ,17640
2013,1,MB  ,1852761.6

文字列としてもフィルタリングしてみました。また、整数として解析してみました。

コンソールにエラーはありませんが、画面には何も表示されません。私は高低を検索しましたが、私を助けているものは何も見つかりませんでした。

4

1 に答える 1

3

d3ライブラリについてはよくわかりませんが、d3.csv呼び出しが非同期であるように見えます。theBeeyatch関数が戻ったとき、変数には意味のあるデータがありません。おそらくこれはうまくいくでしょう:

var theBeeyatch = d3.csv("data/SalesDUMP.csv", function(csv) {
    csv = csv.filter(function(row) {
        return row['Year'] == '2012' || row['Month'] == '1';
    });

    var Chart = d3.select("body")
        // ...
        .selectAll("rect")
        .data(csv)
        // ...
});

もちろん、theBeeyatchここでは変数は必要ありませんが、おそらく他の場所で必要です...

于 2013-02-22T19:03:30.510 に答える