d3.js简单区域图示例...得到“未定义”错误;我想我需要一份退货声明?

时间:2012-11-28 18:39:16

标签: d3.js undefined

我正在研究d3.js.org

上的例子来研究d3.js

我从http://bl.ocks.org/3883195

的“区域图表”开始

我尝试在自己输入,所以我会理解变量和功能。

脚本调用data.tsv来制作图表。

好吧,当加载data.tsv时,我得到一个“'undefined'不是对象”错误。

所以我摆弄了一些,然后继续前进&将bl.ock的原始代码复制并粘贴到我的编辑器中,将他的d3.v3.js更改为d3.v2.js

同样的错误。

我觉得我的data.tsv在我的机器上的正确目录中,与d3.v2.js相同的目录。

此处第二行引发错误:

    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

感谢所有!!

1 个答案:

答案 0 :(得分:6)

这与D3库的版本有关;目前正在从v2过渡到v3:https://github.com/mbostock/d3/wiki/Release-Notes

您正在使用的示例已针对v3进行了修改,但您仍在加载v2库。

对于d3.tsv,两个版本之间的差异与回调签名有关:

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;
  });

这意味着在您的情况下,实际数据存储在错误参数中。