-1
我无法找到下面的代码D3的缺陷:将数据传递到D3的功能
//d3.tsv("dictionaries/dictionary-tsv.tsv",
// function(d) { return +d.frequency },
// function(error, rows) { console.log(rows);},
// function(d) { drawExample(data) }
// );
var data = [1,2,12,4,7];
drawExample(data);
function drawExample(frequency) {
var x = d3.scale.linear()
.domain([0, d3.max(frequency)])
.range([0, 420]);
d3.select(".chart")
.selectAll("div")
.data(frequency)
.enter().append("div")
.style("width", function(d) { return x(d) + "px"; })
.text(function(d) { return d; });
}
如果你运行,因为它是条形图产生。如果您评论var data和drawExample并取消注释从tsv获取外部数据的方法,则它会失败(Firefox调试器显示数据已加载,并且没有未定义的var显示在任何地方)。另外,计算器链接:
“csv to array in d3.js” 和 “variable scope in d3 javascript”
似乎并没有帮助。我使用d3.v3.min.js和我的TSV文件如下:
word frequency
and 1
be 2
art 12
break 4
cat 7
我相信,这是我的错误,因此任何帮助,将不胜感激!
但是,我打电话在回调drawExample(数据),就像你说的,不是吗? – pebox11 2014-09-27 20:54:11
不,你在'var data = d3.tsv'(你的代码刚刚更改)中将d3.tsv的结果赋值给var数据,然后在回调函数中传入'd',但是使用'data'。 – topheman 2014-09-27 21:05:18
是的那部分“var data = d3.tsv”确实发生了变化,但是当我改变它时没有人回答。无论如何,我现在正在提及发布的具体问题。对不起,但我做了你的建议,它不起作用。 – pebox11 2014-09-27 21:10:19