我正在通过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;
});
Run Code Online (Sandbox Code Playgroud)
这是错误的图片:https: //twitter.com/maggie_a_lee/status/273858397173080064/photo/1
谢谢大家!!
这与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;
});
Run Code Online (Sandbox Code Playgroud)
V3:
d3.tsv("data.tsv", function(error, data) {
data.forEach(function(d) {
d.date = parseDate(d.date);
d.close = +d.close;
});
Run Code Online (Sandbox Code Playgroud)
这意味着在您的情况下,实际数据存储在error参数中.