我正在尝试从csv文件中提取信息并在d3中填充我的折线图。我的代码格式大量来自:http://bl.ocks.org/mbostock/3884955
这是我从csv文件中提取信息的实际代码:
d3.csv("population.csv", function(error, data) {
// convert your csv data and add it to dataSet
var color = d3.scale.category10();
color.domain(d3.keys(data[0]).filter(function(key) {return key !== "year";}));
var census = color.domain().map(function(name) {
return {
name: name,
values: data.map(function(d) {
return {year: d.year, population: +d[name]};
})
};
});
我的CSV数据结构如下:
year, population1, population2, population3, population4, population5
0, 5000, 5000, 5000, 5000, 5000
(这些只是样本号,我通过excel查看它看起来没问题。)
但是,当我通过本地主机运行时,出现以下错误:
Uncaught TypeError: Object function n(n){n.each(function(){var n,s=Xo.select(this),l=this.__chart__||e,f=this.__chart__=e.copy(),h=null==c?f.ticks?f.ticks.apply(f,a):f.domain():c,g=null==t?f.tickFormat?f.tickFormat.apply(f,a):bt:t,p=s.selectAll(".t...<omitted>...x'
它是由这一块看起来相对无害的代码触发的,所以我怀疑它与我首先拉动csv数据有关。
var line = d3.svg.axis()
//.interpolate("basis")
.x(function(d) {return x(d.year); })
.y(function(d) {return y(d.population); })
答案 0 :(得分:0)
*更新。此问题已得到解决。事实证明,有许多事情在代码中触发了错误。两个主要的事情(从提供的代码中看不到),变量未被全局传递,即使它们被全局声明,并且列变量和数据变量需要重命名。