1

d3.js.org の例を見て、d3.js を勉強しています。

http://bl.ocks.org/3883195の「面グラフ」から始めます

変数や関数が分かるように自分で打ち込んでみました。

スクリプトは data.tsv を呼び出してグラフを作成します。

さて、data.tsv をロードするときに、「'undefined' はオブジェクトではありません」というエラーが発生しました。

それで、いくつかいじってから、bl.ock の元のコードをコピーしてエディターに貼り付け、d3.v3.js を d3.v2.js に変更しました。

同じエラー。

私のマシンの正しいディレクトリ、d3.v2.js と同じディレクトリに data.tsv があると思います。

ここの 2 行目でスローされるエラー:

    d3.tsv("data.tsv", function(error, data) { 
      data.forEach(function(d) { 
         d.date = parseDate(d.date);
         d.close = +d.close;
      });

ここにエラーの写真があります: https://twitter.com/maggie_a_lee/status/273858397173080064/photo/1

ありがとうございます!!

4

1 に答える 1

6

これは、D3 ライブラリのバージョンに関連しています。現在、v2 から v3 に移行中です: https://github.com/mbostock/d3/wiki/Release-Notes

作業中の例は既に v3 用に変更されていますが、まだ v2 ライブラリをロードしています。

d3.tsv の場合、2 つのバージョンの違いはコールバック シグネチャに関連しています。

v2:

d3.tsv("data.tsv", function(data) { 
  data.forEach(function(d) { 
     d.date = parseDate(d.date);
     d.close = +d.close;
  });

v3:

d3.tsv("data.tsv", function(error, data) { 
  data.forEach(function(d) { 
     d.date = parseDate(d.date);
     d.close = +d.close;
  });

つまり、あなたの場合、実際のデータがエラー引数に格納されたことを意味します。

于 2012-11-29T07:51:45.360 に答える