我正在研究d3.js.org
上的例子来研究d3.js 的“区域图表”开始我尝试在自己输入,所以我会理解变量和功能。
脚本调用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
感谢所有!!
答案 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;
});
这意味着在您的情况下,实际数据存储在错误参数中。