从csv填充折线图

时间:2014-03-15 16:15:50

标签: javascript csv d3.js

我正在尝试从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); })

1 个答案:

答案 0 :(得分:0)

*更新。此问题已得到解决。事实证明,有许多事情在代码中触发了错误。两个主要的事情(从提供的代码中看不到),变量未被全局传递,即使它们被全局声明,并且列变量和数据变量需要重命名。